[python] Brainstorm request: Vyuka programovani na gymplu

slush slush na centrum.cz
Sobota Červen 14 00:27:47 CEST 2008


2008/6/7 Filip Štědronský <regnarg na seznam.cz>:

> 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
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/python/attachments/20080614/fcb159d9/attachment.htm 


Další informace o konferenci Python