hallo,
ich möchte gerne funktionen dynamisch aufrufen. im forum hab ich was passendes gefunden, allerdings funktioniert es nicht. welche methoden gibt es dafür, welche sind elegant?
Funktionen dynamisch aufrufen
Was heisst dynamisch aufrufen? Python ist eine durch und durch dynamische Programmiersprache, da ist jeder Aufruf dynamisch.
Ich würde mal vermuten Du möchtest Funktionen in ein Dictionary stecken oder mit `getattr()` arbeiten, aber dazu müsstest Du schon ein wenig mehr darüber verraten, was Du wirklich machen möchtest.
Ich würde mal vermuten Du möchtest Funktionen in ein Dictionary stecken oder mit `getattr()` arbeiten, aber dazu müsstest Du schon ein wenig mehr darüber verraten, was Du wirklich machen möchtest.
Das verrät immer noch nicht viel mehr. Was hast Du, was willst Du. Möglichst *genau*. Vielleicht mit Beispiel.
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
BlackJack hat dir ja schon ein Stichwort geliefert, hier mal ein Beispiel mit getattr:
Code: Alles auswählen
>>> import math
>>> func = getattr(math, "cos")
>>> func(0)
1.0
>>> func = getattr(math, "sin")
>>> func(0)
0.0
hab den post gefunden: http://www.python-forum.de/topic-6093.html
das beispiel funktioniert bei mir (py 2.5.1) nicht...
das beispiel funktioniert bei mir (py 2.5.1) nicht...
Das im ersten Beitrag funktioniert nicht, das war ja die Frage. Im zweiten Beitrag wird gezeigt, wie es funktioniert.
Falls das immer noch nicht geht, wäre es nett, wenn Du verraten würdest *was* nicht funktioniert. Fehlermeldungen sind dazu da, damit man nicht raten muss wo das Problem liegt.
Falls das immer noch nicht geht, wäre es nett, wenn Du verraten würdest *was* nicht funktioniert. Fehlermeldungen sind dazu da, damit man nicht raten muss wo das Problem liegt.

nunja das ist mein problem, es kommt keine. habe jetzt meine anwendung neu designed, scheint jetzt zu funktionieren:
PS: ich hatte natürlich den code aus dem letzteren beitrag, also der als funktionierend angeben war.
Code: Alles auswählen
from flup.server.fcgi import WSGIServer
# wsgi applications
def app_home():
return 'du bist in app_home'
def app_account():
return 'du bist in app_account'
# wsgi app list
WSGI_APPS = {'/home' : app_home,
'/account' : app_account
}
# wsgi main code
def wsgi_main(environ, start_response):
if environ['PATH_INFO'] in WSGI_APPS:
wsgi_app = WSGI_APPS[environ['PATH_INFO']]()
status = '200 OK'
response_headers = [('Content-Type', 'text/html'), ('Connection', 'Keep-Alive')]
start_response(status, response_headers)
print environ['PATH_INFO']
return [wsgi_app]
else:
status = '404 Not Found'
response_headers = [('Content-Type', 'text/html'), ('Connection', 'Close')]
start_response(status, response_headers)
print environ['PATH_INFO']
return ['ERROR: 404 - Not Found']
WSGIServer(wsgi_main, debug=True, bindAddress=('127.0.0.1', 9000)).run()