print(value.time() > marketclosed)
打印为True。
if value.time() > marketclosed:
#somecode
不执行if语句中包含的代码。
目前在此上下文中使用。没有错误,不是编译器对此if语句的窥视。只是......没什么。
import datetime as dt
for i in range(0,int(total_intervals)):
amount_to_add = dt.timedelta(hours=marketopen.hour,minutes=marketopen.minute) + dt.timedelta(seconds=interval_seconds)*i
basevalue = start_datetime + amount_to_add
value = basevalue
print(value.time())
print(marketclosed)
print(value.time() > marketclosed)
print(value.date())
print(value.date().isoweekday())
if value.time() > marketclosed: # advance to next day
value + dt.timedelta(days=1)
value.combine(value.date(),marketopen)
它的幽灵......当世界处于伟大的边缘时,它就像世界一样停滞不前!
答案 0 :(得分:2)
我非常确定这段代码会执行,它什么都不做,因为value + timedelta
和value.combine()
的结果被丢弃了(它们创建了一个新对象,而没有改变原始对象)。这应该有效:
if value.time() > marketclosed: # advance to next day
value += dt.timedelta(days=1)
value = value.combine(value.date(), marketopen)
Pylint必须至少将+
部分报告为W0104, pointless-statement
。
答案 1 :(得分:1)
为什么你认为代码没有被执行?
您重置'值'每次使用basevalue,这样你就无法看到来自' if'言。
在'内打印一条线?用于检查是否正在执行的声明。