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

  

posted on 2017-08-28 10:03  lakeone  阅读(2771)  评论(0编辑  收藏  举报

导航