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

Petr Zloty petr.zloty na gmail.com
Pátek Srpen 29 11:59:00 CEST 2008


pretezovani operatoru:

ve tride definuj metodu __add__: pro scistani __mul__ pro nasobeni atd..

tenhle priklad funguje pokud se pouzijou keywords argumenty,
prirovnanim k C staci incializovat promenne, tudiz tohle funguje:

def a(x=0):
   print x

def a(x=0,y=0):
   print x + y

a(1)
a(1,1)


2008/8/29 David Michal <dmichal na altien.com>:
> Python nepodporuje pretezovani (overloading) metod stejne jako C++ nebo Java. Ale podporuje keywords argumenty.
> Takze misto napr.:
> def a(x):
>    print x
>
> def a(x,y):
>    print x + y
>
> a(1)
> a(1,1)
> (Coz je nefunkcni priklad, ale myslim ze podobne sis to nejak predstavoval.)
>
> Pouzijeme:
> def a(x, *args):
>    for i in args:
>        x = x + i
>    print x
>
> a(1)
> a(1,1)
>
> Co ovsem python podporuje je pretezovani operatoru, viz: http://docs.python.org/ref/specialnames.html
>
> Ale to uz musi vysvetlit nekdo jinej.
>
> Dokazal by nekdo vysvetlit, jak pouzit pretezovani operatoru?
> Diky,
> 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? =)
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>


Další informace o konferenci Python