[Python-de] Klassenmethoden

Diez B. Roggisch deets at web.de
Fr Jul 19 18:01:47 CEST 2013


On Jul 19, 2013, at 4:10 PM, Tamer Higazi wrote:

> Hallo Frank!
> 
> 
> Hier, ich habe dir ein kleines Sample geschrieben:

Frank hat @classmethod schon korrekt verwandt - seine Frage war nicht, wie er eine classmethod (oder staticmethod) macht, sondern wie die mit *anderen* Methoden interagiert. Womit sich also eigentlich dein (und auch so manch anderer Post hier) eruebrigen.


> 
> class MeineKlasse:
> 
>    Variable = 'Hallo'
> 
>    def MeineFunk(ds):
>        print 'Hallo %s, ich bin eine statische Methode!' % (ds)
>        print MeineKlasse.Variable
> 
> 
>    MeineFunk = staticmethod(MeineFunk)


Python 2.4 ist 2004 - also knapp vor 10 Jahren - erschienen. Seit dem benutzt man eigentlich Dekoratoren fuer sowas. Und staticmethod eigentlich so gut wie nie.

Man sieht an deiner eigenen Implementierung, warum:

@classmethod
def MeineFunk(cls, ds):
       print cls.Variable


Womit sogar ueberladung moeglich waere.

> Hier zum nachlesen:
> http://openbook.galileocomputing.de/python/python_kapitel_12_001.htm

Und das erklaert's - das galileo open book ist ueblicherweise eher als schlecht zu bezeichnen. BlackJack hat mal schoen aufgeschrieben, warum.

http://blog.marc.rintsch.de/2012/11/18/python_openbook.html

Diez
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://mail.python.org/pipermail/python-de/attachments/20130719/89364c5e/attachment.html>


Mehr Informationen über die Mailingliste python-de