前言:
以下函数默认包括time模块.
现有一个需求,使用datetime方法实现打印当前时间戳,如果你是这么写的 :
以上代码的结果显示的两个时间戳是一样的,这就很奇怪了,看起来虽然是执行了两遍函数,但是实际上datetime.now只执行了一遍,参数默认值,在每个模块加载的时候就已经得到,很多模块在程序启动时候就已经加载,一旦这样加载完毕,所有的参数默认值就不会改变,导致程序最终只执行了一遍datetime.now,而没有预期的效果.
在python中,我们如果要改正这个函数,将默认值设置为可变,那么应该是将默认值设置为None:
这样得到的结果就是不同的时间戳,符合需求.
参数的默认值,在加载并且活的函数的定义的时候,便已经存在
需要动态关键字参数的时候,习惯上使用None来作为参数初始化
发布于 00:24
领取专属 10元无门槛券
私享最新 技术干货