Python解释以下语法的方式对我来说毫无意义(由于这个原因,我在调试代码上浪费了两个小时!):
假设您有以下代码:
def returns_true():
print('i\'ve been called!')
return True
for val in [True, False]:
print('val =', val)
print(val or returns_true())
产生以下输出
val = True
True
val = False
i've been called!
True
有人可以解释为什么returns_true()
仅在val
是False
时被调用吗?为了使用or
运算符来评估函数的返回值,Python不应调用该函数吗?