Python连续in表达式执行逻辑解析:为何`"team_" in tag in tag`能正常运行?
Python链式比较的执行逻辑解析
你遇到的"team_" in tag in tag表达式,其实是Python的链式比较特性在起作用,既不是你设想的左嵌套("team_" in tag) in tag,也不是右嵌套"team_" in (tag in tag)。
Python中,连续的比较操作(包括in、==、<这类操作符)会被自动解析为逻辑与(and)的组合,而且中间的操作数只会被计算一次。具体到这个例子,它等价于:
"team_" in tag and tag in tag
因为tag是字符串,tag in tag的结果永远是True——任何字符串都是自身的子串,所以整个表达式的结果就和"team_" in tag完全一致,自然能返回正确的布尔值,不会触发TypeError。
内容的提问来源于stack exchange,提问作者Vini.g.fer
相关产品推荐
相关产品推荐

