Ah díky za vyčerpávající odpověď, zmíněnou metodu už jsem zkoušel:
class pff():
asx = "mlam mlam"
__builtins__.__str__ = pff
__builtins__.str = pff
str = pff
"a".asx
nicméně bez efektu. A ta druhá metoda nefunguje:
" ".__class__.asx = "f"
TypeError: can't set attributes of
> Ehm, ne, o to my nešlo, šlo mi o přepsání __builtin__ třídy str tak abych
> přepsal chování instancí Stringu.
Tak jak to píšes ale na builtin nesáhneš!
"class str(str)" ti udělá objekt jménem str v LOKÁLNÍM jmenném prostoru,
nikoliv v builtins. V tomto kontextu tvůj lokální jmenný prostor je
> Nejsem hodinář ale kouknu se rád :) ...Mohu se jen tak orientačně zeptat
> kolik lidí zde četlo zdrojáky pythonu? Tedy otázka zní zdali je to
> normální...
Ja jsem nakoukl do sekci, ktere me zajimaly. Vetsinou ohledne
implementace datovych struktur. Cele jsem je rozhodne necetl...
Jirka
Nejsem hodinář ale kouknu se rád :) ...Mohu se jen tak orientačně zeptat
kolik lidí zde četlo zdrojáky pythonu? Tedy otázka zní zdali je to
normální...
2010/11/3 Jirka Vejrazka
> > Jen tak ze zvědavosti... Chci si prostě hrát s chřestýšem a to že mě
> kousne
> > patří k tomu ;)
>
> Tak to jo :)
> Jen tak ze zvědavosti... Chci si prostě hrát s chřestýšem a to že mě kousne
> patří k tomu ;)
Tak to jo :) Mam pocit, ze vetsina z nas tady v konferenci si uz
zapomnela hrat (vcetne mne) a vidi podobne dotazy pohledem
programatora nebo clena tymu, kteremu by pak podobny kod hodil kolega
pod
Jen tak ze zvědavosti... Chci si prostě hrát s chřestýšem a to že mě kousne
patří k tomu ;)
2010/11/3 Jirka Vejrazka
> > Ehm, ne, o to my nešlo, šlo mi o přepsání __builtin__ třídy str tak abych
> > přepsal chování instancí Stringu. Což ale jak vidím je problém v tom že:
>
> > Fajn, nevíte jak
> Ehm, ne, o to my nešlo, šlo mi o přepsání __builtin__ třídy str tak abych
> přepsal chování instancí Stringu. Což ale jak vidím je problém v tom že:
> Fajn, nevíte jak tohle chování obejít?
Nedelat to. Nejspis to ani nejde a pak si nedokazu predstavit, k cemu
by to melo byt dobre. Tedy krome
Ehm, ne, o to my nešlo, šlo mi o přepsání __builtin__ třídy str tak abych
přepsal chování instancí Stringu. Což ale jak vidím je problém v tom že:
print isinstance("f", str)
>
> class str(str):
> asx = "mlam mlam"
>
> print isinstance("f", str)
>
Vrací výstup:
True
> False
>
Fajn, nevíte
Visgean Skeloru napsal:
> Pokouším se přepsat třídu string ale nějak mi to nejede...
> class str(str):
> asx = "mlam mlam"
> print str("asx").asx
> print "axs".asx
Omlouvám se za zjednodušující reakci, neboť na složitější vývody nemám.
Z ukázky použití definované třídy mi