"import datetime"和"from datetime import datetime"之间的区别,即使用的datetime

Dav*_*vid 2 python datetime

//作品和输出是2017-03-13 14:14:45.157593; 然后我可以钻到分钟等等

from datetime import datetime
print(datetime.today())
Run Code Online (Sandbox Code Playgroud)

//作品和输出是2017-03-13

import datetime
print(datetime.date.today())
Run Code Online (Sandbox Code Playgroud)

//两者在一起它不起作用.输出错误:AttributeError:模块'datetime'没有属性'today'

from datetime import datetime
import datetime
print(datetime.today())
print(datetime.date.today())
Run Code Online (Sandbox Code Playgroud)
  1. 为什么有两个不同的模块?
  2. 为什么我不能一起使用它们?我不想一起使用它们但需要理解python解释器是如何工作的(因为它一次执行单个语句)...它是否看到第一个导入并在执行第一个语句时忽略第二个导入或别的什么?

谢谢,大卫

kin*_*all 5

只有一个模块:datetime,它包含一个类datetime.

如果你这样做,import datetime 那么datetime模块datetime.datetime就是类.

如果您这样做,from datetime import datetime那么datetime该类并没有该模块的名称.

如果同时执行这两个操作,则datetime执行最后一个操作,因为该名称datetime由附加import语句重新分配.

这种混淆是为什么PEP 8建议模块名称和类名称的不同外壳(该类应DateTime根据PEP 8 命名),但datetime在编写PEP 8之前很早就在标准库中.