Dne 19. červen 2008 10:56 BoneFlute <[EMAIL PROTECTED]> napsal(a):

> Jakub napsal(a):
>
> >     def jmeno(self, nazev=None):
> >         if nazev == None:
> >             print self.nick
> >         else:
> >             self.nick=nazev
>
>
> Mimochodem, má někdo zkušenosti proč se používá takováto konstrukce
> nastavování proměnné?
> Přiznávám, že jsem si tím také prošel, ale posléze opustil. Jednak to
> subjektivně není moc přehledné, druhak je to silný nezvyk proti
> zaběhnutým coding standards - zvláště když má python docela propracovaný
>  systém přetěžování přiřazování atributů a properties.
>
> Zajímalo by mě, zda to má nějaké praktické výhody.
>

Je to prasečina a rozhodně bych se toho vyvaroval. Jednak pokud po vytvoření
instance třídy zavoláš tu metodu bez parametru, nebo z jakéhokoliv důvodu
(chyba na vstupu nebo bug jinde) jako název pošleš hodnotu None, tak se to
bude snažit vypsat neexistující proměnou (self.nick) => AtributeError. A i
kdyby self.nick už existoval, to zavolání s hodnotou None způsobí
neočekávané chování (print, nebo jindy return), které může způsobit spoustu
těžko dohledatelných bugů.

Honza
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem