當在函數中定義默認值時,值初始化只會進行一次,就是執行到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()