为何Python中True匹配match语句的case 1分支并执行?
问题原因解释
- Python里的布尔类型
bool是整数类型int的子类,True的底层值等价于整数1,False等价于整数0。 match语句的字面量匹配逻辑是按顺序用**值相等(==)**来判断是否匹配:- 首先检查
a == False,结果为False,跳过该分支; - 接着检查
a == 2,结果为False,继续跳过; - 最后检查
a == 1,结果为True,因此执行case 1对应的打印操作。
- 首先检查
你可以直接在Python交互环境验证这一点:
>>> True == 1 True >>> isinstance(True, int) True
内容的提问来源于stack exchange,提问作者sp1rs
相关产品推荐
相关产品推荐

