datetime.time()调用报错:昨日可用今日为何提示需传入参数?
为何datetime.time()昨日运行正常今日却报TypeError?
昨日调用datetime.time()传入hour和minute参数时运行正常,但今日执行相同代码出现如下TypeError错误,查阅官方文档后仍无法理解原因:
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_8068/3836677419.py in <module> 1 # today=date.today() 2 # print(today) ----> 3 start=datetime.time(hour=9) 4 print(start) 5 end=datetime.time(hour=17, minute=30) TypeError: unbound method datetime.time() needs an argument
这个错误的核心原因是你当前代码里的datetime指向的是datetime.datetime类,而非标准的datetime模块。
- 昨天你的代码应该用了
import datetime,此时datetime是模块,调用datetime.time()是直接使用模块下的time类,传参后能正常创建时间对象。 - 今天你可能改成了
from datetime import datetime,这时候datetime变成了datetime.datetime这个日期时间类,它的time()是实例方法——必须先创建datetime类的实例才能调用,直接用datetime.time(hour=9)就会触发“未绑定方法需要参数”的错误,因为实例方法默认需要接收self参数,你没传实例,所以报错。
另一种可能:你在代码里不小心给datetime变量赋了其他值(比如把某个日期实例赋值给了datetime),导致它不再指向标准库的模块或类,调用time()时自然出错。
解决方法:
- 若想继续用
datetime.time()的写法,确保导入语句是import datetime; - 若用
from datetime import datetime,那创建时间对象应该单独导入time类:from datetime import time,然后调用time(hour=9); - 检查代码里有没有给
datetime变量赋值的语句,避免覆盖标准库对象。
内容的提问来源于stack exchange,提问作者Parham Afsharnia
相关产品推荐
相关产品推荐

