pythonにおける関数のデフォルト値使用上の注意点の詳細


関数でデフォルト値を定義すると、値初期化は一回だけ行われます。つまりdef methodnameに実行されます。次のコードを見てください

from datetime import datetime
 
def test(t=datetime.today()):
  print t
 
if __name__ == "__main__":
  test()
  test() 
二つの方法で出力を呼び出す時間は同じです。現在の実行時間を予想していません。上記のような場合には、次のような方法で実現することを提案します。

from datetime import datetime 
 
def test2(t = None):
  if t is None:
    t = datetime.today()
  print t 
 
 
if __name__ == "__main__":
  test()
  test() 
以上のpythonでは関数のデフォルト値を使っています。注意点を詳しく説明すると、小編集が皆さんに提供している内容が全部分かります。