首页 > 解决方案 > 使用“导入”与“从 X 导入”

问题描述

我正在使用 Head First Python,并且有一个示例:

from datetime import datetime

odds = [  1,  3,  5,  7,  9, 11, 13, 15, 17, 19,
     21, 23, 25, 27, 29, 31, 33, 35, 37, 39,
     41, 43, 45, 47, 49, 51, 53, 55, 57, 59 ]

right_this_minute = datetime.today().minute

#if right_this_minute in odds:
    #print("This minute seems a little odd.")
#else:
    #print("Not an odd minute.")

现在,如果我用“import datetime”代替“from datetime import datetime”,解释器会给我一个错误:

right_this_minute = datetime.today().minute AttributeError: 模块 'datetime' 没有属性 'today'

我不明白为什么“从日期时间导入日期时间”有效,但“导入日期时间”却没有。我已经经历了一些关于这个的stackoverflow问答,但我显然错过了一些东西。

任何建议将不胜感激。

标签: python-import

解决方案


首先,有两个“事物”称为datetime:模块和模块定义的类。

您使用的两个导入选项具有不同的行为。

当你运行时:

from datetime import datetime

第一个是模块,第二个是类。datetimePython从模块中只导入一个类 ( )。从那时起,Python 就会理解datetime引用类。

当你运行时:

import datetime

您导入整个模块,因此 Python 将理解datetime为模块。要访问类datetime,您需要使用datetime.datetime.


推荐阅读