Dne 19. červen 2008 10:56 BoneFlute <<a href="mailto:boneflute@taco-beru.name">boneflute@taco-beru.name</a>> napsal(a):<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Jakub napsal(a):<br>
<div class="Ih2E3d"><br>
> def jmeno(self, nazev=None):<br>
> if nazev == None:<br>
> print self.nick<br>
> else:<br>
> self.nick=nazev<br>
<br>
<br>
</div>Mimochodem, má někdo zkušenosti proč se používá takováto konstrukce<br>
nastavování proměnné?<br>
Přiznávám, že jsem si tím také prošel, ale posléze opustil. Jednak to<br>
subjektivně není moc přehledné, druhak je to silný nezvyk proti<br>
zaběhnutým coding standards - zvláště když má python docela propracovaný<br>
systém přetěžování přiřazování atributů a properties.<br>
<br>
Zajímalo by mě, zda to má nějaké praktické výhody.<font color="#888888"><br></font></blockquote><div><br>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ů.<br>
<br>Honza<br><br></div></div>