サーチ…


辞書キーの初期化

キーが存在するかどうかわからない場合は、 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