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() 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM