Seite 1 von 1

__call__ function für module

Verfasst: Freitag 9. Dezember 2011, 21:33
von init-0
Hallo,

Ich habe ein Programm, das über netzwerk verschiedene plugins aufrufen kann.
Die Plugins sind im Ordner Plugins gespeichert. Wenn ich ein Plugin importieren will rufe ich dazu

Code: Alles auswählen

p = __import__(plugin)
auf.
Ich habe die funktion die aus dem plugin aufgerufen werden soll auch als string gespeichert.
Wie kann ich die funktion sqrt aus math ohne exec aufrufen wenn ich sqrt als string habe.
Mit exec sähe das ja so aus

Code: Alles auswählen

exec  "plugin."+funcname+"(argument)"

Re: __call__ function für module

Verfasst: Freitag 9. Dezember 2011, 21:38
von cofi

Code: Alles auswählen

In [1]: p = __import__('math')

In [2]: getattr(p, 'sqrt')
Out[2]: <function math.sqrt>

In [3]: _2(42)
Out[3]: 6.48074069840786