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
