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 @   yingzi__block  阅读(410)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示