python 3.5 : if 语句评估为 true 并且什么也不做,即使被告知做某事

python 3.5 : if statement evaluates as true and does nothing, even if told to do something

这对你来说是一场噩梦.. python3.5!

的完全故障

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)

太可怕了..当一个人正处于伟大的边缘时,就像世界突然停止了一样!

为什么你认为代码没有执行?

您每次都将 'value' 重置为基值,因此您无法看到 'if' 语句中调用的任何效果。

在 'if' 语句中添加一行打印语句以检查它是否正在执行。

我很确定这段代码执行了,它什么也没做,因为 value + timedeltavalue.combine() 的结果被丢弃了(它们创建了一个新对象而不改变原始对象)。这应该有效:

if value.time() > marketclosed:  # advance to next day
    value += dt.timedelta(days=1)
    value = value.combine(value.date(), marketopen)

Pylint 必须至少将 + 部分报告为 W0104, pointless-statement