[Python-Dev] Protecting __name__ &c.

Mark Hammond mhammond@skippinet.com.au
Sat, 3 Jun 2000 09:21:07 +1000


> Would it be too much trouble to prevent replacing
> double-underscore attributes like __name__ and __file__?

This can be handy sometimes.

> I'll accept a "consenting adults" argument -- it's just
> that somehow this makes me uneasy:

OK - accept it :-)  Just dont do it if it makes you uneasy.

>     >>> import foo
>     >>> foo.__name__
>     'bar'
>     >>> foo.__file__
>     'bar.py'
>     >>> foo
>     <module 'bar' from 'bar.py'>

That is no worse than, say:

>>> a=1
>>> globals()['a']=2
>>> a
2

So you could make the same argument that globals() should be read-only, to
force you to do the "normal" thing.

To me, this is one of Python's big features.  I dont want it holding my
hand so tightly it cuts circulation :-)

Mark.