小编典典

“导入日期时间”与“从日期时间导入日期时间”

python

我有一个脚本,需要在脚本的不同行执行以下命令:

today_date = datetime.date.today()
date_time = datetime.strp(date_time_string, '%Y-%m-%d %H:%M')

在我的import陈述中,我有以下内容:

from datetime import datetime
import datetime

我收到以下错误:

AttributeError: 'module' object has no attribute 'strp'

如果我将import语句的顺序更改为:

import datetime
from datetime import datetime

我收到以下错误:

AttributeError: 'method_descriptor' object has no attribute 'today'

如果我再次将import语句更改为:

import datetime

我收到以下错误:

AttributeError: 'module' object has no attribute 'strp'

这是怎么回事,我怎么都可以工作?


阅读 225

收藏
2020-12-20

共1个答案

小编典典

您的麻烦是,您有一些代码希望datetimedatetime 模块
进行引用,而其他代码希望datetime对类进行引用datetime 显然,不能两者兼有。

当您这样做时:

from datetime import datetime
import datetime

您首先要设置datetime为对该类的引用,然后立即将其设置为对模块的引用。当您以另一种方式执行此操作时,它是同一件事,但是最终它是对该类的引用。

您需要重命名这些引用之一。例如:

import datetime as dt
from datetime import datetime

然后,您可以将引用datetime.xxxx模块的形式的引用更改为dt.xxxx

否则,只需import datetime更改所有引用即可使用模块名称。换句话说,如果有话说,datetime(...)您需要将其更改为datetime.datetime

不幸的是,Python在它的库中有很多类似的东西。如果他们遵循PEP
8中
自己的命名准则,则将为datetime该类命名,Datetime并且使用它们既datetime表示模块又Datetime表示类都没有问题。

2020-12-20