gpt4 book ai didi

python - "import datetime"对比"from datetime import datetime"

转载 作者:IT老高 更新时间:2023-10-28 21:50:30 24 4
gpt4 key购买 nike

我有一个脚本需要在脚本的不同行执行以下操作:

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'

这里发生了什么,如何让两者都工作?

最佳答案

你的问题是你有一些代码期望 datetime 是对 datetime module 的引用和其他期望的代码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 表示类。

关于python - "import datetime"对比"from datetime import datetime",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15707532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com