[python] pspad kompilace
Stepan
stepan.wagner na gmail.com
Čtvrtek Červen 19 23:02:36 CEST 2008
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: python-bounces na py.cz [mailto:python-bounces na py.cz] 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 <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/e6cbdaba/attachment.htm
Další informace o konferenci Python