NEWBIE: What's the instance name?

Dan Bishop danb_83 at
Mon Dec 29 09:36:09 CET 2003

engsolnom at wrote in message news:<6q2vuv45lsah3epo9loa7l2tp9517makk4 at>...
> Hi,
> I've been using constructs(?) like the below.
> def display(instance, start = None, end = None):
>     if instance.__class__.__name__ == 'UPCA':

You might want to try the isinstance function.

>         do some UPCA stuff
>     if instance.__class__.__name__ == 'UPCE':
>         do some UPCE stuff
> launched by:
> lx = UPCA(sx), where sx is a string
> then:
> display(lx)
> This all works well.
> What I'd like to do is display is the instance name. Is it hiding
> somewhere?

You mean you'd like display(lx) to print "lx"?

What would you expect the folowing code to do?

a = b = MyClass()
display(a)      # "a" or "b"?
display(a + b)  # Creates an instance without a name.
display(2)      # Literals have no names either.

Now do you see why the functionality you want isn't implemented?
> Also, if I have a string 4 chars long, representing two bytes of hex,
> how can I *validate* the string as a *legal* hex string?
> isdigit works until string = '001A', for example
> isalnum works, but then allows 'foob'
> Is there a 'ishexdigit'? I could parse the string, but that seems
> "un-Pythonish"

Unfortunately, no, but you can use "ch in string.hexdigits", at least
until Python 3.0 (or whenever the string module is going away).

More information about the Python-list mailing list