我有一个脚本需要在脚本中的不同行执行以下命令:
today_date = datetime.date.today()
date_time = datetime.strp(date_time_string, '%Y-%m-%d %H:%M')
In my 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
class.显然,两者不可能兼而有之。
当你这样做时:
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 http://www.python.org/dev/peps/pep-0008/, the datetime
类将被命名Datetime
两者使用都没有问题datetime
表示模块和Datetime
来表示班级。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)