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