Python __getitem__方法和in运算符会导致奇怪的行为

11 浏览
0 Comments

Python __getitem__方法和in运算符会导致奇怪的行为

以下行为的原因是什么:

class Foo:
    def __getitem__(self, item):
        print("?")
        return 1
f = Foo()
1 in f  # 打印一个?并返回True
5 in f  # 会不断打印?,直到引发键盘异常
# 编辑:最终会引发OverflowError: iter index too large错误

0