a = [1]
b = [2]
c = [3]
a += b if False else c
print(a) # [1,3] 没错,很符合逻辑。
a = a + b if False else c
print(a) # [3] 这到底是为什么?
a = [1]
b = [2]
c = [3]
a += b if False else c
print(a) # [1,3] 没错,很符合逻辑。
a = a + b if False else c
print(a) # [3] 这到底是为什么?
a += b if False else c
等价于:
if False:
a += b
else:
a += c
a = a + b if False else c
等价于:
if False:
a = a + b
else:
a = c
2 回答4.3k 阅读✓ 已解决
2 回答861 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答856 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
4 回答2.5k 阅读
3 回答903 阅读✓ 已解决
优先级的问题,
a + b if False else c
的分支是a + b
和c
,等效于(a + b) if False else c
,你期望的应该是a + (b if False else c)
。