hmm normalne s takovymi konstrukcemi pracuji; mam jednu metodu a vim ze:

 

jmeno()...vypise jmeno

jmeno(value)...nastavi jmeno

 

nevidim v tom velky problem.

 

Stepan

 

 

  _____  

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jan
Bednařík
Sent: Thursday, June 19, 2008 10:14 PM
To: Konference PyCZ
Subject: Re: [python] pspad kompilace

 

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
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem