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

Varaible Funktionsaufrufe - Funktionsname ermitteln

Beitragvon JR » 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
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » 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

Beitragvon JR » 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()
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » 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

Wer ist online?

Mitglieder in diesem Forum: __deets__, Bing [Bot]