2008/6/7 Filip Štědronský <[EMAIL PROTECTED]>: > On Pá, čen 06, 2008 at 07:09:35 +0200, slush wrote: > > > >>> class str(str): > > ... def zzzmojefce(self): > > ... return "blabla" > > ... > > >>> str().zzzmojefce() > > 'blabla' > > >>> "xxx".zzzmojefce() > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > AttributeError: 'str' object has no attribute 'zzzmojefce' >
> > Konkrétní problém, který ukazujete, ve skutečnosti > problémem není. String je opravdovým objektem jako každý > jiný, rovnocenný jakýmkoliv jiným, není to žádná emulace. > Jenže Váš kód NEUPRAVUJE třídu str (takové šílenosti jdou > asi jen v Ruby), ale definuje novou třídu, která je > odvozená od str a shodou náhod se jmenuje také str, a tu > vloží do aktuálního lokálního namespace. No vidite, a prave tohle prijde nelogicke zase mne. Pokud predefinuji tridu str, cekal bych, ze dalsi instance teto tridy bude pouzivat moji customizaci. 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). > Jenže Python když narazí na úvozovky neprohledává lokální > namespace, jestli tam náhodou není něco, co se jmenuje > str a co by mohl použít, což by ani nešlo, protože Polozme si otazku "a proc ne?"... Nechci strilet do pythonu - mam ho rad. Jen nemam rad prilis nekriticke nazory a naopak shazovani "konkurence". Marek
_______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
