[python] Statické metody v Pythonu
Jan Matejka
matejka na cat.cz
Středa Listopad 8 16:57:32 CET 2006
> Metoda konverze stringu na radiány nepotřebuje žádné proměnné
> zvenku a nezávisí na instanci, proto je zbytečné aby měla
> self. Ale chci po ní, aby se dala předefinovat v potomcích.
> To byl můj cíl a záměr. Děkuji všem za trpělivost.
>
Ten self je pro vnitřní fungování nezbytný (rozlišuje se podle něj třída
instance objektu, což potřebujete), takže cílem snažení je aby v těch
konverzních funkcích opticky nepřekážel ten self v parametrech metody (je
potřeba ho skrýt).
A výsledek je, předpokládám, že to funguje v rámci koncepce pythonu tak jak
má:
class A(object):
@staticmethod
def m():
print "A::m"
class B(A):
pass
class C(B):
@staticmethod
def m():
print "C::m"
A.m()
B.m()
C.m()
A().m()
B().m()
C().m()
vypíše:
A::m
A::m
C::m
A::m
A::m
C::m
Tzn. dědění statických metod funguje.
Jan Matějka
Další informace o konferenci Python