funktionen "by name" ansprechen
Verfasst: Montag 29. Oktober 2007, 10:40
moin,
kann man eine funktion "by name" ansprechen (z.B. so wie bei einer Instanzvariable?)
Beispiel:
mit
und
komme ich an das "hallo".
kann ich ähnlich auch an die funktion kommen?
ich stell mir das ungefähr so vor:
und die Ausgabe wäre "doing imporant stuff"
(wobei "__func__" natürlich wild erfunden ist)
geht das irgendwie?
thx im Voraus
hobbes
PS:
über
bekomme ich
['__doc__', '__init__', '__module__', 'somefunc']
über
nur noch
['__doc__', '__init__', '__module__', 'a']
und bei
erhalte ich
['__doc__', '__init__', '__module__']
da taucht "somefunc" leider nicht mehr auf... sonst wäre ich über
gegangen.
edit:
aaargh, geht ja doch... und zwar so:
a.__class__.__dict__['somefunc'](a, 'important stuff')
geht das auch direkter??
kann man eine funktion "by name" ansprechen (z.B. so wie bei einer Instanzvariable?)
Beispiel:
Code: Alles auswählen
class A:
def __init__(self):
self.a = "hallo"
def somefunc(self, text):
print "doing", text
Code: Alles auswählen
a = A()
Code: Alles auswählen
a.__dict__['a']
kann ich ähnlich auch an die funktion kommen?
ich stell mir das ungefähr so vor:
Code: Alles auswählen
a.__func__['somefunc']('important stuff')
(wobei "__func__" natürlich wild erfunden ist)
geht das irgendwie?
thx im Voraus
hobbes
PS:
über
Code: Alles auswählen
dir(A)
['__doc__', '__init__', '__module__', 'somefunc']
über
Code: Alles auswählen
dir(a)
['__doc__', '__init__', '__module__', 'a']
und bei
Code: Alles auswählen
dir(a.__class__)
['__doc__', '__init__', '__module__']
da taucht "somefunc" leider nicht mehr auf... sonst wäre ich über
Code: Alles auswählen
a.__class__.__dict__['somefunc']
edit:
aaargh, geht ja doch... und zwar so:
a.__class__.__dict__['somefunc'](a, 'important stuff')
geht das auch direkter??