[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