Effective Python
Pythonプログラムを改良する59項目
楽天ブックス Yahoo!
原著: Effective Python:
59 Specific Ways to Write Better Python
開発環境
- macOS Catalina - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
s51517765さんのブログ、プログラミング素人のはてなブログの記事、ifのネストが深くなってしまうのifの入れ子について、1行の長さのコーディング規約を守りつつ見やすいかもしれないコードを書いたり、early continueのコードのミスについて修正してみた。
まずコードのミスについて。
コード
for tweet in api.search(q=keyword, count=200): # 検索
...
if not is_japanese(txt):
continue
# この箇所のインデントが間違っていて(?)実行されることがないコード
# print(txt)
# 修正
print(txt)
ということで修正完了。
ネストについて、andでif文を一つにしてるところをちょっと書き換えれば、1行の長さのコーディング規約を守りつつ読みやすくなるかも。
コード
if (tweet.user.screen_name not in NG_ScrName
and not has_NGWord_in(txt)
and tweet.retweet_count >= 30
and tweet.favorite_count >= 30
and is_japanese(txt)):
print(txt)
修正といっても、括弧と改行を加えただけだけど、だいぶ読みやすいかも。(括弧じゃなくても改行の前部分にバックスラッシュ「\」を加えるのでも良い。)
(⚠️読みやすくなるのは、このコードのifのネストの場合だけで一般的には当てはまらない可能性があるかも。)
0 コメント:
コメントを投稿