[python] Přetěžování metod v Pythonu
David Michal
dmichal na altien.com
Pátek Srpen 29 12:30:27 CEST 2008
> -----Original Message-----
> From: python-bounces na py.cz [mailto:python-bounces na py.cz] On Behalf Of
> Petr Zloty
> Sent: Friday, August 29, 2008 10:59 AM
> To: Konference PyCZ
> Subject: Re: [python] Přetěžování metod v Pythonu
>
> 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)
>
No funguje, ale ta prvni definice a je tam zbytecna. Python je interpretovany jazyk, takze pri provadeni kodu jede pekne radek po radce. V tomhle pripade tedy nejdrive nadefinuje a jako a(x=0)... a pak to prepise definici a(x=0,y=0)....Takze priklad:
def a(x=0):
print 'jeden argument'
def a(x=0,y=0):
print 'dva argumenty'
a(1)
a(1,1)
uz moc dobre fungovat nebude.
Ad k tomu pretizeni operatoru, kdy to pouzivat? V jakem pripade se to hodi?
Další informace o konferenci Python