Übergabe/parsen von komplexen Funktionen als Parameter
Verfasst: Dienstag 14. Januar 2014, 15:03
Das Thema ist trifft es nicht so ganz.
Man stelle sich vor, man möchte beispielsweise ein Programm schreiben, das Funktionsverläufe in einem Koordinatensystem grafisch darstellt.
Dann würde irgendwo im Quelltext stehen
Soweit, so gut. Wenn ich aber eine komplexere Funktion übergeben möchte, die vielleicht auch erst zur Laufzeit eingegeben wird, welche Möglichkeiten habe ich dann?
Ich will mich ja nun ein wenig mit Eurer Schlange beschäftigen und da krabbelt durch mein Gehirn so etwas, wie ein keyboard/notenabspieler fürs Tablet. Dabei kommen dann die Vorzüge von python m.E. zum Tragen, ich kann entweder eine Note übergeben, oder aber auch eine Liste von Noten. Und diese könnten auch von unterschiedlichem Klang sein etc. Sicher geht das in anderen Sprachen auch, wenn man die Vererbungshierarchie richtig aufbaut und Funktionen überlädt. Aber dann ist ja der Übungseffekt weg 
Man stelle sich vor, man möchte beispielsweise ein Programm schreiben, das Funktionsverläufe in einem Koordinatensystem grafisch darstellt.
Dann würde irgendwo im Quelltext stehen
Code: Alles auswählen
Koordinatensystem.zeichne(math.sin)Code: Alles auswählen
def my_complex_function(x):
return x*math.sin(x)
Koordinatensystem.zeichne(my_complex_function) #das funktioniert
#kann man aber auch irgendwie so etwas schreiben:
Koordinatensystem.zeichne(def dummy: return x*math.sin(x))
#oder noch einer oben drauf
funktionsstring = input("Gib eine Funktion ein, die ich zeichnen soll:")
Koordinatensystem.zeichne(parse_string(funktionsstring))