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
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
优先级的问题,
a + b if False else c
的分支是a + b
和c
,等效于(a + b) if False else c
,你期望的应该是a + (b if False else c)
。