alle Member einer Klasse ermitteln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
wivaxing
User
Beiträge: 21
Registriert: Mittwoch 17. Oktober 2007, 14:16

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?
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Die dir-Methode duerfte das sein, was du suchst:

Code: Alles auswählen

>>> class Foo:
...    def hallo(self): pass
...
>>> dir(Foo)
['__doc__', '__module__', 'hallo']
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
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>)]
wivaxing
User
Beiträge: 21
Registriert: Mittwoch 17. Oktober 2007, 14:16

Vielen Dank!
Antworten