[python] Statické metody v Pythonu

Leos Pol leos na radiante-corp.com
Středa Listopad 8 14:14:25 CET 2006


> class uhel:
>
>      @staticmethod
>      def static(a):
>          print "trida1.static(): ", a
>
>      def method(self):
>          self.static(1)
>
> class zemepisny_uhel(uhel):
>
>      #@staticmethod
>      def static(a):
>          print "trida2.static(): ", a
>
> a = uhel()
> a.method()
>
> b = zemepisny_uhel()
> b.method()
>
> trida1.static():  1
> Traceback (most recent call last):
>    File "C:\home\astrol\test.py", line 25, in ?
>      b.method()
>    File "C:\home\astrol\test.py", line 10, in method
>      self.static(1)
> TypeError: static() takes exactly 1 argument (2 given)
>   
Mam jednu pripominku. Jak muzete definovat methodu tridy, kde neni prvni 
parametr self (zemepisny_udel.static)? Muzete mi prosim ve zkratce 
vysvetlit, co presne hledate? Uz se v tomhle threadu trosku ztracim a 
docela rad bych problematice porozumel.

Pokud ma byt vysledek toto:
trida1.static():  1
trida2.static():  1
pak vam chybi jen ten self v metode zemepisny_uhel.static()

Pokud ale ocekavate toto:
trida1.static():  1
trida1.static():  1
pak nahradte uhel.static(1) za self.static(1) v metode uhel.method() + 
pridejte self do methody zemepisny_uhel.static()

Prosim jeste jednou o poslani mensiho popisu, co ocekavate za chovani.
Diky,
Leo


Další informace o konferenci Python