Dennis Lee Bieber <wlfr...@ix.netcom.com> writes: > On Sat, 06 Nov 2010 12:37:42 +0000, m...@distorted.org.uk (Mark Wooding) > declaimed the following in gmane.comp.python.general: > > > > > Two reasons. Firstly, this comes from my Lisp background: making a > > list is the obvious way of producing an unforgeable object. > > Secondly, if you see an objects that prints as ['missing'], you have > > a chance of working out where it came from; for a loose object() > > that's kind of hard without a wabbit hunter. > > > I think the Python form is to create a basic class instance, a la > > >>> class Sentinal(object): > ... pass > ... > >>> _missing = Sentinal() > >>> print _missing > <__main__.Sentinal object at 0x011F01B0>
No, that doesn't tell me where it came from at all. Given a thingy that prints like that, I still need a wabbit hunter to tell me what /this/ particular sentinel value means. > Or, if one wants to get fancier (maybe stuff the class definition > into some common package) > > > >>> class Sentinal(object): > ... def __init__(self, text): > ... self.text = text > ... def __str__(self): > ... return "%s : %s" % (repr(self), self.text) > ... > >>> _missing = Sentinal("Missing Items") > >>> print _missing > <__main__.Sentinal object at 0x0120D070> : Missing Items And the advantage of all of this typing over ['missing'] is what, precisely? If I want to write Java, I know where to look; I don't. -- [mdw] -- http://mail.python.org/mailman/listinfo/python-list