gpt4 book ai didi

Python - 短路奇怪的行为

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:17 25 4
gpt4 key购买 nike

在下面的代码片段中,函数 f 按预期执行:

def f():
print('hi')
f() and False
#Output: 'hi'

但在下面类似的代码片段中,a 不会递增:

a=0
a+=1 and False
a
#Output: 0

但是如果我们用 True 而不是 False 短路 a 会增加:

a=0
a+=1 and True
a
#Output: 1

短路如何让它以这种方式运行?

最佳答案

那是因为 f() and False 是一个表达式(从技术上讲是一个单表达式语句),而 a += 1 and False 是一个赋值语句。它实际上解析为 a += (1 and False),因为 1 and False 等于 FalseFalse实际上是整数 0,发生的是 a += 0,一个空操作。

然而,

(1 and True) 的计算结果为 True(即整数 1),因此 a += 1 and True表示 a += 1

(还要注意 Python 的 andor 总是返回它们的第一个可以明确确定操作结果的操作数)

关于Python - 短路奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36289297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com