gpt4 book ai didi

python - 如何直接从 datetime.datetime 子模块导入 now()

转载 作者:太空狗 更新时间:2023-10-29 17:47:14 25 4
gpt4 key购买 nike

背景:我在 Python 程序中有几个重复调用的紧密循环,其中包括 datetime.datetime.now() 方法,以及datetime.datetime.mindatetime.datetime.max 属性。为了优化,我想将它们导入本地命名空间,避免重复的、不必要的模块层次结构名称查找,如下所示:

from datetime.datetime import now, min, max

但是,Python 会提示:

Traceback (most recent call last):
File "my_code.py", line 1, in <module>
from datetime.datetime import now, min, max
ImportError: No module named datetime

问题:为什么上述子模块导入不起作用?

解决方法:我可以改为这样做:

import datetime
dt_now = datetime.datetime.now
dt_min = datetime.datetime.min
dt_max = datetime.datetime.max

但是,我很好奇为什么更传统的方法不起作用?为什么我不能直接从 datetime.dateime 子模块导入方法和属性? ...而且,是否有任何理由避免上述解决方法(除了可读性、超越自己等)?

谢谢!

最佳答案

datetime.datetime 不是子模块。 datetimedatetime 模块中的一个类。 now 是该类的一个方法。您不能使用 from...import... 导入类的各个方法。您只能使用它从包中导入单个模块,或存在于模块顶层的单个对象。

至于你的解决方法,如果你想要速记,我发现这样做更具可读性:

from datetime import datetime as dt
dt.now()
# you can also use dt.max, dt.min, etc.

如果您真的想将这些方法直接放在局部变量中,那么您的解决方法就很有意义。

关于python - 如何直接从 datetime.datetime 子模块导入 now(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27491472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com