python中,datetime.datetime.now()作为函数的默认值时

在python中,定义函数的时候,是可以设置参数的默认值的。

但当datetime.now()作为函数默认值时,会出现问题:

def get_now(now=datetime.now()):
    print(now)
    print(datetime.now())

当程序运行时,会发现当now的值一旦初始化成功,之后就不会再变化,除非重新启动程序。

解决方案:

def get_now(now=None):
    if not now:
        now = datetime.now()

函数默认值尽量使用不可变的数据类型,如int, str, bool等,尽量不要使用数组或者函数作为默认值

posted @ 2023-03-10 15:27  yingzi__block  阅读(334)  评论(0编辑  收藏  举报