gibt es eine saubere (kein brute force und am besten auch kein hack) methode um rauszukriegen was fuer argumente eine funktion erwartet?
danke
argumente einer funktion ermitteln
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Da Python dynamisch typisiert ist wird das sehr schwierig. Was du herausfinden kannst sind die Namen und die Anzahl der Argumente:
Das gibt dir eine Liste mit den Namen der Argumente zurück. Ich kann nicht sagen wie "korrekt" er ist, da ich das ganze mehr oder weniger durch introspection mit ipython herausgefunden haben. Ich verwende den Code um halbautomatisch Commandline interfaces zu "erzeugen".
Code: Alles auswählen
func.func_code.co_varnames[:func.func_code.co_argcount]
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Und es gibt natürlich auch das `inspect`-Modul:
Code: Alles auswählen
In [222]: def f(a, b=42, *args, **kwargs):
.....: pass
.....:
In [223]: inspect.getargspec(f)
Out[223]: (['a', 'b'], 'args', 'kwargs', (42,))
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Aus dem Bauch heraus würde ich das mit "Ja" beantworten, weil es doch eher die Interna des Interpreters sind.Joghurt hat geschrieben:Ist "func_code" nicht CPython-spezifisch?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice