现在我遇到了一些无法解释和解决的问题。
这是我的第一个python模块
TimeHelper.py
from datetime import datetime
def fun1(currentTime = datetime.now()):
print(currentTime)
另一个是
Main.py
from TimeHelper import fun1
import time
fun1()
time.sleep(5)
fun1()
当我运行Main.py时,输出是
2020-06-1609:17:52.316714
2020-06-16 09:17:52.316714
我的问题是为什么结果中的时间是一样的?将datetime.now()传入默认参数时是否有任何限制
这是因为当您定义函数datetime.now()时,仅在该时间计算该值,并且该值存储在currentTime中,因此无论何时运行fun1currentTime值都不会更新。
您只需在TimeHelper.py中执行此操作即可
希望有帮助:)
我想我找到了答案。 感谢@user2864740
所以我把TimeHelper.py改成这个
一切都符合我的期望
在函数中指定变量时,实际上在导入函数时只指定一次。要动态分配它,您需要在每次运行函数时在函数内部设置变量
编辑:
如果你想明确说出时间,那么:
相关问题 更多 >
编程相关推荐