Si je crée ma propre classe en Python, quelle fonction devrais-je définir afin de permettre l'utilisation de l'opérateur "in", par exemple.
class MyClass(object):
...
m = MyClass()
if 54 in m:
...
Une réponse plus complète est:
class MyClass(object):
def __init__(self):
self.numbers = [1,2,3,4,54]
def __contains__(self, key):
return key in self.numbers
Ici, vous deviendrez vrai en demandant si 54 était en m:
>>> m = MyClass()
>>> 54 in m
True
Vous voudrez peut-être aussi jeter un coup d'œil à la structure de substitution d'opérateur infixe que j'ai pu utiliser pour créer un langage spécifique à un domaine: