funktions objekt "ausführen"

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
Costi
User
Beiträge: 545
Registriert: Donnerstag 17. August 2006, 14:21

wie kann ich einen funktions object (ich meine den namen einer funktion ohne das "()" am ende) ausführem ?


danke
cp != mv
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Hi

Auführen geht nur mit (). Ohne gibts du der Funktion einfach einen weiteren Namen.

Code: Alles auswählen

def test():
    print 'ok'

func = test
func() # prints ok
Gruss
Costi
User
Beiträge: 545
Registriert: Donnerstag 17. August 2006, 14:21

das wusste ich schon, hab einen dict von string-def objects paaren, die je nach request ausgefuehrt werden muessen. aber jetzt hast du mit den aha-effekt gegeben einfach alles unbenenen und dan noch einen () dranhangen....

edit:
achso, das geht ja sogar noch einfacher!:

Code: Alles auswählen

virFiles[reqFile](param)

8)
cp != mv
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

das schaut aber nur das erste mal beim erstellen des dictionairies nach, was diese funktion macht. wenn du willst, dass immer wieder nachgesehen wird, musste das mit klassen und propierity (hab grad keinen interpreter, kann falsch geschrieben sein). dann sieht er bei jedem auslesen der variable wieder nach.
(ich habe einfach mal geraten, was du willst...)
http://www.cs.unm.edu/~dlchao/flake/doom/
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

murph hat geschrieben:das schaut aber nur das erste mal beim erstellen des dictionairies nach, was diese funktion macht.
Das Bindet das Funktionsobjekt an den Key des Dictionaries. Ist ja ganz klar, wenn man die Funktion ändern will, dann muss man den Key natürlich noch einmal an die neue Funktion binden. So gesehen sind solche Operationen eben Seiteneffekt-frei.
murph hat geschrieben:wenn du willst, dass immer wieder nachgesehen wird, musste das mit klassen und propierity (hab grad keinen interpreter, kann falsch geschrieben sein).
Es wird "Klassen" (notice the uppercase K) und "Properties" geschrieben.
murph hat geschrieben:dann sieht er bei jedem auslesen der variable wieder nach.
(ich habe einfach mal geraten, was du willst...)
Ich glaube zwar nicht, das Costi ein Dictionary mit lazy evalution haben will, aber mich würde es interessieren wie du ein solches implementieren würdest.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

murph hat folgendes geschrieben:
das schaut aber nur das erste mal beim erstellen des dictionairies nach, was diese funktion macht.

Das Bindet das Funktionsobjekt an den Key des Dictionaries. Ist ja ganz klar, wenn man die Funktion ändern will, dann muss man den Key natürlich noch einmal an die neue Funktion binden. So gesehen sind solche
ich dachte daran, dass er soetwas wolle

Code: Alles auswählen

dic = {'erste_funktion':erste_funktion()}
uns dann das immer automatisch ausführen wolle...das ist ja aber schon erledigt, er ist mit der 'normalen' lösung zurfrieden und schreibt die klammern selber
Es wird "Klassen" (notice the uppercase K) und "Properties" geschrieben.
ot: sch....önes französisch. hasse die rechtschreibung, vor allem, wenn man die bedeutungsgleichen wörter ein bisschen unterschiedlich schreibt.
(addresse, adresse, address, ...(bestimmt noch mehr variationen))
Ich glaube zwar nicht, das Costi ein Dictionary mit lazy evalution haben will, aber mich würde es interessieren wie du ein solches implementieren würdest.
nicht sehr schön ;-)
bei solchen sachen finde ich meinen eigenen code hässlich...
also ich würde eine eigene dictionairylike Klasse machen...
http://www.cs.unm.edu/~dlchao/flake/doom/
Antworten