Finding the name of a class
bruno desthuilliers
bruno at modulix.org
Tue Aug 1 16:30:06 EDT 2006
Tim Chase a écrit :
>>>>> class Foo(object):
>>
>> ... pass
>> ...
>>
>>>>> b = Foo
>>>>> b.__name__
>>
>> 'Foo'
>
>
> While this is surely true, would somebody explain why I had such trouble
> finding this?
Mmm... Documentation needs update ?
> >>>> help(dir)
> > Help on built-in function dir in module __builtin__:
>
> continuing from your example...
>
> >>> dir(b)
> ['__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__',
> '__hash__', '__init__', '__module__', '__new__', '__reduce__',
> '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__']
> >>> '__name__' in dir(b)
> False
>
> '__name__' *really is* a method
s/method/attribute/
> of b as shown by your example lines, and
> can be successfully called. However, it *doesn't* show up when asked
> for via dir(b). Grumble.
Yes, as mentionned in the doc, dir() doesn't list *all* names in a
namespace. DOn't ask me why nor how it chooses which ones it rejects, I
wonder too.
> Is there a dir_and_i_really_mean_everything() function?
Perhaps in the inspect module...
More information about the Python-list
mailing list