【发布时间】:2021-12-03 05:58:16
【问题描述】:
PEP 622, Literal Patterns 说如下:
注意,由于使用了等式(__eq__),以及布尔值与整数0和1的等价性,所以以下两者没有实际区别:
case True: ... case 1: ...
和True.__eq__(1) 和(1).__eq__(True) 都返回True,但是当我用CPython 运行这两个代码sn-ps 时,似乎case True 和case 1 不一样。
$ python3.10
>>> match 1:
... case True:
... print('a') # not executed
...
>>> match True:
... case 1:
... print('a') # executed
...
a
1 和 True 实际上是如何比较的?
【问题讨论】:
标签: python python-3.x pattern-matching python-3.10