From IDLE:
>>> a=True
>>> b=True
>>> c=True
>>> d=True
>>> e=True
>>> f=a and b and c and d and e
>>> f
True
>>> b = False
>>> f
True
既然b是假的,那么第二个f
不应该是假的吗?
"如果两个操作数都为真,那么条件就变为真。
https://www.tutorialspoint.com/python/logical_operators_example.htm
即使它一次比较两个名称,因为一个比较给出 False,所有其他比较都是 False...?
当最后打印f
时,它仍然是您第一次将其分配给f
时的值。在执行该评估后更改b
对f
的价值没有任何影响。
在更改 b
的值后,您必须再次执行f=a and b and c and d and e
才能对f
产生任何影响:
>>> a=True
>>> b=True
>>> c=True
>>> d=True
>>> e=True
>>> f=a and b and c and d and e
>>> f
True
>>> b = False
>>> f
True
>>> f=a and b and c and d and e
>>> f
False
变量 f 设置为条件语句运行时的状态。 因此,由于定义 f 时条件的评估值为 True,因此 f 将继续为 true,直到重新分配为止。 它不会在每次调用 f 时重新处理条件。