使用“导入”与“来自X导入”

时间:2018-06-12 10:52:34

标签: python-import

我正在使用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()。分钟   AttributeError:module'datetime'没有属性'today'

我不明白为什么“from datetime import datetime”有效,但“import datetime”却没有。我已经经历了一些关于此问题的stackoverflow Q& A,但我显然错过了一些东西。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

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

当你跑步时:

from datetime import datetime

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

当你跑步时:

import datetime

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