[python] pspad kompilace

Jan Bednařík jan.bednarik na gmail.com
Čtvrtek Červen 19 22:14:21 CEST 2008


Dne 19. ÄŤerven 2008 10:56 BoneFlute <boneflute na taco-beru.name> 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
------------- daląí část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/python/attachments/20080619/177948fa/attachment.htm 


Daląí informace o konferenci Python