Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Další začátečnické dotazy

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Další začátečnické dotazy

Autor: radil321123

11:04:46 08.02.2011

Vezmu-li ten kod tak, jak jsi ho napsal, tAK zadna vazba f1-g, f1-h neni. Ta funkce f1 je vlastne externe definovana metoda libovolne tridy (proto tam je to self), kterou si dana trida prevezme pomoci f=f1.

Citovat příspěvek

 

Re: Další začátečnické dotazy

Autor: ondro1234

10:35:13 22.01.2011

Martin_:
Ja to vidim rovnako ako ty, len sa mi tak este, ako bonus, nezda toto: "f, g a h atributy třídy C". pred niki mi chyba slovicko "self."

Citovat příspěvek

 

Re: Další začátečnické dotazy

Autor: eee

10:25:41 22.01.2011

Si to vyzkousej, napis si ten priklad, zavolej jednotlive metody a uvidis, zda jde o chybu nebo ne. Nebudes pak pokladat zbytecne dotazy.

Citovat příspěvek

 

Další začátečnické dotazy

Autor: Martin_

2:37:31 22.01.2011

Učím se Python, již jsem se tady na fóru na něco ptal a dočkal se tu užitečných odpovědí. Nyní si založím nové téma s obecným názvem, kam budu postupně vpisovat svoje dotazy, postřehy, komentáře.

[bold]Dotaz na objekty a třídy v Pythonu[/bold]
Při procházení tutoriálu k Pythonu jsem narazil na jednu nesrovnalost. Nejprve k samotnému tutoriálu. Jedná se o oficiální tutoriál pro Python 2.2, přeložený do češtiny. [ital]Disclaimer: Je skvělé, že je něco takového vůbec k dispozici a autor překladu zasluhuje uznání a vděk za vynaloženou námahu. V žádném případě nechci kritizovat autora překladu.[/ital]

Nyní k samotnému problému. V tutoriálu, v části věnované OOP, je uveden kód s komentářem. Jelikož mě diskutovaná část dokonale zmátla, rád bych se zeptal zkušených Pythonýrů, jestli jde o chybu v tutoriálu/překladu, anebo jestli to prostě jen nechápu.
Původní kód:
[code]
# Funkce definovaná mimo třídu
def f1(self, x, y):
return min(x, x+y)

class C:
f = f1
def g(self):
return 'ahoj'
h = g
[/code]
Za ním v tutoriálu následuje text:
[quote]Po provedení těchto definici jsou f, g a h atributy třídy C, odkazují však na jedinou funkci f1. Zároveň jsou f, g a h jména metod instancí třídy C. Každá z těchto metod však má stejnou implementaci -- funkci f1.[/quote]

Nyní můj dotaz: vazba mezi funkcemí (metodami) f a f1 je mi jasná. Uníká mi ale souvislost mezi funkcemi f1 - g a souvislost mezi f1 - h. Jedná se o evidentní chybu (překlep), anebo je tam někde chyták, který nevidím/nechápu? Kde případně vznikne jaká vazba mezi f1 a g?

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: