Joseph L. Casale wrote: >>>>> import enum >>>>> class M(enum.EnumMeta): >>... def __contains__(self, value): >>... print("checking", value) >>... return super().__contains__(value) >>... >>>>> class Colors(enum.Enum, metaclass=M): >>... red = 1 >>... green = 2 >>... blue = 3 >>... >>>>> Colors.red in Colors >>checking Colors.red >>True >> >>Is that what you're asking for? If not can you give an example? > > Hi Peter, > That is exactly what I was referring to, I just wondered if I overlooked > some way to apply it after the initial meta class built the instance. It > appears not...
Like that? >>> class M2(enum.EnumMeta): ... def __contains__(self, value): ... print(value, "? never", sep="") ... return False ... >>> Colors.__class__ <class '__main__.M'> >>> Colors.red in Colors checking Colors.red True >>> Colors.__class__ = M2 >>> Colors.red in Colors Colors.red? never False -- https://mail.python.org/mailman/listinfo/python-list