2 回答
TA贡献1898条经验 获得超8个赞
你是对的 - 你不需要范围!这是一个稍微令人困惑的情况,因为该datetime
模块有一个类也称为datetime
.
那么这些中发生了什么:
print(datetime.now())
# 调用类的now()
类方法datetime
并打印其输出print(now())
# now() 未在命名空间中定义,因此出现错误print(date(2005, 2, 27))
# 实例化date
对象并打印其表示print(datetime.date(2005, 2, 27))
# 这是试图调用类的date()
方法datetime
,但没有存在,因此错误。
对于最后一种情况,如果您刚刚完成import datetime
,则整个datetime
模块都会被导入。在这种情况下,您可以date
通过执行 datetime.date(2005, 2, 27) 来实例化一个类对象。
希望这有点道理!
TA贡献1805条经验 获得超9个赞
python中的导入很简单。导入时
from datetime import datetime
那么你从 modul datetime 只导入类/函数 datetime。(在这种情况下是一个类)。您的解释器不知道“现在”的功能,但是当您对导入的内容进行循环时,您可以访问它。
datetime.now()
第二次导入后
from datetime import date
您的编译器知道类日期和日期时间。当你尝试
print( datetime.date(2005, 2, 27) )
那么这不是您所期望的。您尝试从类 datetime 调用具有其他参数的函数 date 作为模块 datetime 中的类日期。modul datetime 的问题在于它包含一个带有 datetime 的类,因此有点令人困惑。
添加回答
举报