背景: 我在Python程序中有一些重复调用的紧密循环,其中包括 datetime.datetime.now()
方法,以及 datetime.datetime.min
和 datetime.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子模块导入方法和属性? ...并且,有没有理由避免上述解决方法(除了可读性,超越自己等)?
谢谢!