Varaible Funktionsaufrufe - Funktionsname 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
JR
User
Beiträge: 286
Registriert: Montag 20. Februar 2006, 16:43
Wohnort: Berlin

Freitag 15. September 2006, 18:59

Hallo!

Kann man Methoden per Variable rufen? Und wie ermittle ich den Namen der Methode (oder auch Klasse), in der ich mich gerade befinde?

Gibt es dazu Befehle?
Dnka eund schönes WE!
JR
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Freitag 15. September 2006, 19:03

Was meinst du?

Meinst du sowas?

Code: Alles auswählen

class Foo(object):
  def bar(self):
    pass

foo = Foo()

foobar = foo.bar

foobar() # identisch mit foo.bar()
JR
User
Beiträge: 286
Registriert: Montag 20. Februar 2006, 16:43
Wohnort: Berlin

Freitag 15. September 2006, 19:09

So ähnlich.

Guck mal:

Code: Alles auswählen

def bar(): 
    print 'Super' 

class dummy:
    def test(self):
        print 'test'
        
def main():
    # Methodennamen in Variable
    dict = {'methodname' : bar(), 'classmethod' : test()}
    
    # Folgendes geht
    dict['methodname']
    
    # Folgendes geht nicht
    dummy = dummy()
    dummy.dict['classmethod']

if __name__ == '__main__':
    main()
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Freitag 15. September 2006, 19:33

Code: Alles auswählen

>>> def foo():
...  print "FOOOOO!!!11"
... 
>>> method_names = {'foo': foo}
>>> def call_method(name):
...  return method_names[name]()
... 
>>> call_method('foo')
FOOOOO!!!11
TUFKAB – the user formerly known as blackbird
Antworten