Seite 1 von 1

alle Member einer Klasse ermitteln

Verfasst: Montag 12. November 2007, 10:15
von wivaxing
Hi,

gibt es ggf. irgendwas um auf einem Klassenobjekt durch alle Felder und Member zu iterieren? Oder sonstwie rauszufinden, was zur Laufzeit alles in der Klasse drinsteckt?

Verfasst: Montag 12. November 2007, 10:40
von Rebecca
Die dir-Methode duerfte das sein, was du suchst:

Code: Alles auswählen

>>> class Foo:
...    def hallo(self): pass
...
>>> dir(Foo)
['__doc__', '__module__', 'hallo']

Verfasst: Montag 12. November 2007, 11:56
von BlackJack
Oder `inspect.getmembers()`:

Code: Alles auswählen

In [46]: class Foo(object):
   ....:     def hello(self):
   ....:         pass
   ....:

In [47]: inspect.getmembers(Foo)
Out[47]:
[('__class__', <type 'type'>),
 ('__delattr__', <slot wrapper '__delattr__' of 'object' objects>),
 ('__dict__', <dictproxy object at 0xb79847ac>),
 ('__doc__', None),
 ('__getattribute__', <slot wrapper '__getattribute__' of 'object' objects>),
 ('__hash__', <slot wrapper '__hash__' of 'object' objects>),
 ('__init__', <slot wrapper '__init__' of 'object' objects>),
 ('__module__', '__main__'),
 ('__new__', <built-in method __new__ of type object at 0x8149d00>),
 ('__reduce__', <method '__reduce__' of 'object' objects>),
 ('__reduce_ex__', <method '__reduce_ex__' of 'object' objects>),
 ('__repr__', <slot wrapper '__repr__' of 'object' objects>),
 ('__setattr__', <slot wrapper '__setattr__' of 'object' objects>),
 ('__str__', <slot wrapper '__str__' of 'object' objects>),
 ('__weakref__', <attribute '__weakref__' of 'Foo' objects>),
 ('hello', <unbound method Foo.hello>)]

Verfasst: Montag 12. November 2007, 12:23
von wivaxing
Vielen Dank!