[Python-de] 'Pointer' auf eine @staticmethod-function

Dieter Neubauer neubauer at lni.de
Mo Jul 7 17:12:42 CEST 2008


Diez B. Roggisch schrieb:
>> Im Skript funktioniert ja auch noch das erste 'print A.time()'.
>> Erst nachdem 'A.time = B.time'  zugewiesen wurde gibt's den Fehler und
>> das wo B.time als staticmethod gekennzeichnet ist!
>>     
>
> Achso, das wurde aus deiner Beschreibung nicht ganz klar.
>
> Es scheint so zu sein dass das, was B.time zurueckgibt das Descriptor-protocol 
> unterstuetzt - und dabei dann ein "normaler" methoden-descriptor wird, statt 
> weiterhin staticmethod zu sein.
>
> Was geht ist natuerilch
>
>
> A.time = staticmethod(B.time)
>
>   
Stimmt - das geht wirklich!

Die Systematik, die dahinter steckt kann ich nicht ganz erkennen! 
Irgendeinen Grund wird es wohl geben, dass aus der static-Function auf 
'magische' Weise wieder ein methoden-descriptor wird, vielleicht auch 
nur ein Relikt aus der Zeit vor 'staticmethod'?

Danke für den Tip - ich werde jetzt eben doppelt gemoppelt arbeiten. 
Schade nur, dass ich damit Wissen über Implementierungsdetails einbaue, 
was an sich ja nicht notwendig wäre ..

Dieter

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://mail.python.org/pipermail/python-de/attachments/20080707/3d111a56/attachment.html>


Mehr Informationen über die Mailingliste python-de