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

alle Member einer Klasse ermitteln

Beitragvon wivaxing » Montag 12. November 2007, 10:15

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:

Beitragvon Rebecca » Montag 12. November 2007, 10:40

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

Beitragvon BlackJack » Montag 12. November 2007, 11:56

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

Beitragvon wivaxing » Montag 12. November 2007, 12:23

Vielen Dank!

Wer ist online?

Mitglieder in diesem Forum: de_tom