<br><br><div class="gmail_quote">2008/6/7 Filip Štědronský <<a href="mailto:regnarg@seznam.cz">regnarg@seznam.cz</a>>:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On Pá, čen 06, 2008 at 07:09:35 +0200, slush wrote:<br>
<br>
> >>> class str(str):<br>
> ... def zzzmojefce(self):<br>
> ... return "blabla"<br>
> ...<br>
> >>> str().zzzmojefce()<br>
> 'blabla'<br>
> >>> "xxx".zzzmojefce()<br>
> Traceback (most recent call last):<br>
> File "<stdin>", line 1, in <module><br>
> AttributeError: 'str' object has no attribute 'zzzmojefce'</div></blockquote><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><br>
</div>Konkrétní problém, který ukazujete, ve skutečnosti<br>
problémem není. String je opravdovým objektem jako každý<br>
jiný, rovnocenný jakýmkoliv jiným, není to žádná emulace.<br>
Jenže Váš kód NEUPRAVUJE třídu str (takové šílenosti jdou<br>
asi jen v Ruby), ale definuje novou třídu, která je<br>
odvozená od str a shodou náhod se jmenuje také str, a tu<br>
vloží do aktuálního lokálního namespace.</blockquote><div><br>No vidite, a prave tohle prijde nelogicke zase mne. Pokud predefinuji tridu str, cekal bych, ze dalsi instance teto tridy bude pouzivat moji customizaci.<br><br>
Nerikam,ze je takove chovani prakticke, kazdopadne priklad, ktery jsem pred par dny konstruoval mel ukazat, ze ona "jednotnost pristupu" plati, ale jen do urcite miry. Pak se zacnete ucit ruzne speciality pythonu, tj. proc se to chova tak a ne jinak - stejne, jako v kteremkoliv jinem jazyce, napriklad v Jave (Groovy).<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Jenže Python když narazí na úvozovky neprohledává lokální<br>
namespace, jestli tam náhodou není něco, co se jmenuje<br>
str a co by mohl použít, což by ani nešlo, protože</blockquote><div><br>Polozme si otazku "a proc ne?"...<br><br>Nechci strilet do pythonu - mam ho rad. Jen nemam rad prilis nekriticke nazory a naopak shazovani "konkurence".<br>
</div><br>Marek<br><br></div><br>