[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