python - 运算符 "is"和 "in"的魔术方法的名称是什么?

标签 python magic-methods getattr

我想使用这些运算符的魔术方法进行 bool 二进制运算。例如,我可以得到 a < b作为 getattr(a, '__lt__')(b)a == b作为 getattr(a, '__eq__')(b) .

我可以得到 a in ba is b以这种方式?

最佳答案

对于in,正确的dunder方法是__contains__ .

is没有方法,因为这等价于id(a) == id(b)。它比较 Python 在后台使用的实际对象 ID,因此用于比较对象身份,而不是对象内容。在类中覆盖它会破坏 Python 的对象模型,因此是不允许的。

关于python - 运算符 "is"和 "in"的魔术方法的名称是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40980751/

相关文章:

PHP:类中的静态只读属性

Python 神奇的 __getattr__() 的 PHP 方法

python - Pandas 表,在重复数据删除的列值上运行 .apply()

python - mpi4py 分散和收集大型 numpy 数组

python - 为什么我找不到与 python 正则表达式匹配的所有模式?

python - 如何将字符串作为对象传递给 getattr python

python - 如何鲁棒地检查 Python 属性是否存在?

Python,覆盖__getstate__() 和 __setstate__()

php - 如何将对象用作数组?

python - __new__ 方法给出错误对象。__new__() 只需要一个参数(要实例化的类型)