[python] Přetěžování metod v Pythonu

Pavel Kosina geon na post.cz
Pondělí Září 1 13:18:31 CEST 2008


a nechtěl by to někdo sesumírovat (přetěžování versus prekryvaní  metod 
versus operatoru) a pustit to na wiki? ;-)
vcelku zajímavé téma, které by mohlo být dostupné každému dalšímu bez 
dotazů ....

Díky
P.


mtip napsal(a):
> 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
>
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>   



Další informace o konferenci Python