我正在建立一个时间分割选择器,即如果实际时间是21h34而我选择了3分钟的分割,它将返回21h33(它总是从纯小时开始 - 在这种情况下是21h00,并返回最接近的值)。如果时间是14h17,它将返回14h16。
实施以下代码来解决问题:
import datetime
def last_time(interval):
now = datetime.datetime.now()
last_time = now.replace(microsecond=0,second=0,minute=0)
while True:
if((last_time < now) & (now < last_time + datetime.timedelta(seconds = interval))):
return last_time,(last_time + datetime.timedelta(seconds = interval)), \
((last_time + datetime.timedelta(seconds = interval)) - now).total_seconds()
break
last_time = last_time + datetime.timedelta(seconds = interval)
并执行我们所做的功能:
last_time, next_time, delta = last_time(180) #in GMT
如果我只运行一次该功能,它将没有任何问题。但是,如果我再次运行它,它将返回以下错误:
TypeError: 'datetime.datetime' object is not callable
答案 0 :(得分:1)
您获得TypeError
的原因是因为last_time
既是函数又是变量;当你运行第last_time, next_time, delta = last_time(180) #in GMT
行时,你基本上覆盖了返回datetime.datetime
对象的函数。
值得庆幸的是,解决方案是一个快速修复,只需更改变量名称或函数名称,问题就会停止!
希望有所帮助!