Si estoy creando mi propia clase en Python, qué función debería definir para permitir el uso del operador 'in', por ejemplo
class MyClass(object):
...
m = MyClass()
if 54 in m:
...
python
operator-overloading
operators
in-operator
astrofrog
fuente
fuente
is
yis not
. Como aquery = tinydb.Query().field == value
, también poder escribirQuery().field is not None
. Pero parece que me quedo con__eq__
y__ne__
por el momento, lo que lleva a lo poco pitónicoQuery().field != None
. (sarc)Respuestas:
MyClass.__contains__(self, item)
fuente
Una respuesta más completa es:
Aquí obtendría True al preguntar si 54 estaba en m:
Ver documentación sobre sobrecarga
__contains__
.fuente
También es posible que desee echar un vistazo a un marco de anulación de operador infijo que pude usar para crear un lenguaje específico de dominio:
http://code.activestate.com/recipes/384122/
fuente