Python 3.x Python3:对于类类型,调用in时会发生什么?
如果我有一个定义了uu getitem的类Python 3.x Python3:对于类类型,调用in时会发生什么?,python-3.x,Python 3.x,如果我有一个定义了uu getitem的类 c = MyClass() x in c 显示为使用所有值y,0迭代调用c.。\uuuu getitem\uuuu。您应该定义一个 __contains__() 方法Python为成员资格测试操作符优先考虑\uuuu contains()。因此,更好的方法是重写\uuuu contains\uuu()方法 从 对于未定义\uuuu包含
c = MyClass()
x in c
显示为使用所有值y,0迭代调用c.。\uuuu getitem\uuuu。您应该定义一个
__contains__()
方法Python为成员资格测试操作符优先考虑
\uuuu contains()。因此,更好的方法是重写\uuuu contains\uuu()
方法
从
对于未定义\uuuu包含
的对象,成员资格测试
首先通过\uu iter\uu()
尝试迭代,然后是旧序列迭代
协议通过\uuuu getitem\uuuuuu()
如果要编写这样的类,我建议从中的一个类继承。它可以为您节省大量输入,并有助于确保您的类与list
/dict
/set
或任何您试图模拟的对象兼容。
__contains__()