Constants [was Re: newb question about @property]

Ian Kelly ian.g.kelly at gmail.com
Wed Oct 4 12:15:26 EDT 2017


On Wed, Oct 4, 2017 at 9:08 AM, Steve D'Aprano
<steve+python at pearwood.info> wrote:
> But in large projects, especially those where you cannot trust every module in
> the project to obey the naming convention, I can see that this lack might
> contribute to the perception, if not the fact, of Python being a bit too
> unsafe for big projects. We have read-only attributes in classes, but not
> read-only names in modules. That makes me a little bit sad.

Which brings up the point that you can hack it in if you want it.
$ cat demo.py
import sys
class DemoModule:
 @property
 def foo(self):
 return 42
sys.modules['demo'] = DemoModule()
$ python3 -c 'import demo; print(demo.foo); demo.foo = 14'
42
Traceback (most recent call last):
 File "<string>", line 1, in <module>
AttributeError: can't set attribute


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /