Seite 1 von 1

funktions objekt "ausführen"

Verfasst: Samstag 4. November 2006, 01:11
von Costi
wie kann ich einen funktions object (ich meine den namen einer funktion ohne das "()" am ende) ausführem ?


danke

Verfasst: Samstag 4. November 2006, 09:47
von rayo
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

Verfasst: Samstag 4. November 2006, 11:35
von Costi
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)

Verfasst: Samstag 4. November 2006, 11:41
von murph
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...)

Verfasst: Samstag 4. November 2006, 12:09
von Leonidas
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.

Verfasst: Samstag 4. November 2006, 14:32
von murph
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...