On Thu, May 13, 2021 at 7:44 PM Ethan Furman <et...@stoneleaf.us> wrote: > > Consider me complaining. ;-)
+1 > An actual Sentinel class would be helpful: > > >>> class Sentinel: > ... def __init__(self, repr): > ... self.repr = repr > ... def __repr__(self): > ... return self.repr > ... > > >>> MISSING = Sentinel('MISSING') > >>> MISSING > MISSING > > >>> implicit = Sentinel('<implicit>') > >>> implicit > <implicit> Here is my suggestion (also posted on the related bpo-44123), which is also simple, ensures a single instance is used, even considering multi-threading and pickling, and has a better repr: class Sentinel: def __new__(cls, *args, **kwargs): raise TypeError(f'{cls.__qualname__} cannot be instantiated') class MISSING(Sentinel): pass - Tal _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/URFRF634732GRICGLRPGJEJON2BYQZM4/ Code of Conduct: http://python.org/psf/codeofconduct/