[python] Přetěžování metod v Pythonu
mtip
mtip na atlas.cz
Pátek Srpen 29 14:15:13 CEST 2008
Uf to je to pomotany.
ten prvni priklad neni v pythonu pretezovani, ale prekryvani metod
takze to nema s pretezovanim co delat.
K pretezovani operatoru metod (coz je ten druhy priklad to funguje takto:
def metoda (*args, **kwargs):
print args
print kwargs
a ted muzu volat metodu bud s libovolnym poctem parametru:
metoda(1,2,3,4) #kdy se ulozi parametry do list args
nebo:
metoda(a=1,b=2,c=3) #kdy se ulozi parametry do dict kwargs
nebo oboje kombinace
metoda(1,2,c=3,d=4): #kdy se naplni args i kwargs.
Mirek N.
DM> Python nepodporuje pretezovani (overloading) metod stejne
DM> jako C++ nebo Java. Ale podporuje keywords argumenty.
DM> Takze misto napr.:
DM> def a(x):
DM> print x
DM> def a(x,y):
DM> print x + y
DM> a(1)
DM> a(1,1)
DM> (Coz je nefunkcni priklad, ale myslim ze podobne sis to nejak predstavoval.)
DM> Pouzijeme:
DM> def a(x, *args):
DM> for i in args:
DM> x = x + i
DM> print x
DM> a(1)
DM> a(1,1)
DM> Co ovsem python podporuje je pretezovani operatoru, viz:
DM> http://docs.python.org/ref/specialnames.html
DM> Ale to uz musi vysvetlit nekdo jinej.
DM> Dokazal by nekdo vysvetlit, jak pouzit pretezovani operatoru?
DM> Diky,
DM> David
>> -----Original Message-----
>> From: python-bounces na py.cz [mailto:python-bounces na py.cz] On Behalf Of
>> pydevil na gmail.com
>> Sent: Friday, August 29, 2008 9:22 AM
>> To: python na py.cz
>> Subject: [python] Přetěžování metod v Pythonu
>>
>> Ahoj,
>> koukam jestli to Python ma nebo nema ale nevygooglil sem...
>> Vite nekdo jestli to dovoluje a nebo proc to nema? =)
DM> _______________________________________________
DM> Python mailing list
DM> Python na py.cz
DM> http://www.py.cz/mailman/listinfo/python
Další informace o konferenci Python