AW: [Python-de] dynamisch Methoden aufrufen

Rainer Fischbach fischbach at ecs-gmbh.de
Mit Nov 12 15:27:58 CET 2003


> --- Simon Pamies <lists at bipbap.de> schrieb: > >
>> >>name = "two"
>> >>c = C()
>> 
>> c.__dict__[name]()
>> 
>> Simon
>> 
>> 
>
> hi
>
> habe ich getestet, funzt aber nicht.

Kann auch nicht gehen, da die Methoden nicht im __dict__ der Ausprägungen stehen, sondern in dem der Klasse. Dabei musst Du darauf achten, dass dort die ungebundene Methode steht, Du also die Ausprägung explizit als Parameter übergeben musst! So geht's:

C.__dict__[name](c)

Ciao, Rainer


Rainer Fischbach

Senior Consultant
ECS Engineering Consulting & Solutions GmbH
Mühlstraße 3
D-92318 Neumarkt

Fon +49 9181 4764-84 
Fax  +49 9181 4764-50
email fischbach at ecs-gmbh.de
http://www.ecs-international.de/