DM> A jak si mam potom vysvetlit vetu:
DM> This is Python's approach to operator overloading, allowing
DM> classes to define their own behavior with respect to language
DM> operators.
No tahle veta uz moc podle me komplikuje pretezovani. Kdyz se
rozhoduju na zaklade nazvu parametru co budu prova
> -Original Message-
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of
> mtip
> Sent: Friday, August 29, 2008 1:15 PM
> To: Konference PyCZ
> Subject: Re: [python] Přetěžování metod v Pythonu
>
> Uf to je to pomotany.
> ten prvni priklad neni v pythonu pretezovani, ale pre
jj predefinuje prvni funkci, takze pretezovani funkce ala C++ podle
poctu parametru neumoznuje bez **keywords resp. * args (Musim projit
jeden stary zdrojak kde jsem tohle pouzival a "nejak" to fungovalo :/,
ale v ramci metod se da pouzit viz prvni priklad nebo tenhle fukcni
kod:
class Master:
> -Original Message-
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of
> mtip
> Sent: Friday, August 29, 2008 1:17 PM
> To: Konference PyCZ
> Subject: Re: [python] Přetěžování metod v Pythonu
>
> DM> Co ovsem python podporuje je pretezovani operatoru, viz:
> DM> http://doc
DM> Co ovsem python podporuje je pretezovani operatoru, viz:
DM> http://docs.python.org/ref/specialnames.html
Jo aspecialni nazvy metod s tim uz vubec nemaji co delat.
To te uplne z jineho soudku.
--
Mirek N.
___
Python mailing list
Python@py.cz
http
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 lib
> -Original Message-
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 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 scistan
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)
200
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(
hups jeste jsem pozapomnel na povinny parametr self resp this
2008/8/29 Petr Zloty <[EMAIL PROTECTED]>:
> dovoluje
>
> class SuperClass:
> def metoda1():
> print "foo"
>
> class SubClass(SuperClass):
> def metoda1():
> SuperClass.metoda1() # volani puvod
dovoluje
class SuperClass:
def metoda1():
print "foo"
class SubClass(SuperClass):
def metoda1():
SuperClass.metoda1() # volani puvodni metody
print "foo" ## neco navic
2008/8/29 [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
> Ahoj,
> koukam
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@py.cz
http://www.py.cz/mailman/listinfo/python
12 matches
Mail list logo