Python Language
慣用句
サーチ…
辞書キーの初期化
キーが存在するかどうかわからない場合は、 dict.get
メソッドを使用することをお勧めします。 keyが見つからない場合は、デフォルト値を返すことができます。従来のメソッドdict[key]
はKeyError
例外を発生させます。
やるよりも
def add_student():
try:
students['count'] += 1
except KeyError:
students['count'] = 1
行う
def add_student():
students['count'] = students.get('count', 0) + 1
変数の切り替え
2つの変数の値を切り替えるには、タプル展開を使用できます。
x = True
y = False
x, y = y, x
x
# False
y
# True
真理値テストを使う
Pythonは、任意のオブジェクトをテストのためにブール値に暗黙的に変換するので、可能な限り使用してください。
# Good examples, using implicit truth testing
if attr:
# do something
if not attr:
# do something
# Bad examples, using specific types
if attr == 1:
# do something
if attr == True:
# do something
if attr != '':
# do something
# If you are looking to specifically check for None, use 'is' or 'is not'
if attr is None:
# do something
これは一般に、より読みやすいコードを生成し、予期しない型を扱うときにはるかに安全です。
False
に評価される内容の一覧はこちらをクリックしてください 。
予期しないコードの実行を避けるための "__main__"のテスト
コードを実行する前に、呼び出しプログラムの__name__
変数をテストすることをお__name__
ます。
import sys
def main():
# Your code starts here
# Don't forget to provide a return code
return 0
if __name__ == "__main__":
sys.exit(main())
このパターンを使用すると、コードが期待どおりに実行されることが保証されます。たとえば、ファイルを明示的に実行するとします。
python my_program.py
ただし、別のプログラムでファイルをimport
する場合(たとえば、ライブラリの一部としてファイルを書き込む場合など)、利点が得られます。ファイルをimport
すると、 __main__
トラップによってコードが予期せず実行されることがなくなります。
# A new program file
import my_program # main() is not run
# But you can run main() explicitly if you really want it to run:
my_program.main()
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow