[Python-ideas] Should Python have user-defined constants?
Victor Stinner
victor.stinner at gmail.com
Tue Nov 21 10:47:05 EST 2017
2017-11-21 7:33 GMT+01:00 Saeed Baig <saeedbaig616 at icloud.com>:
> Hey guys I am thinking of perhaps writing a PEP to introduce user-defined
> constants to Python. Something along the lines of Swift’s “let” syntax (e.g.
> “let pi = 3.14”).
If you want to work on a PEP, you will have to write a strong
rationale for it :-)
> Do you guys think it would be a good idea? Why or why not? Do you think
> there’s a better way to do it? I’d like to know what others think about this
> idea before making any formal submission (I’ve already posted this same
> question on python-list, but I just wanted to gauge opinion here too).
Python has different kinds of namespaces: module globals, class
attributes, function local variables, etc.
The https://github.com/fijal/quill programming language looks like
Python but makes module globals *mapping* "immutable": setattr(module,
'var', new_value). Only the mapping is immutable, a value can be
mutable. I guess that the motivation here is to help the optimizer to
emit more efficient code.
See also previous attempts:
"PEP 416 -- Add a frozendict builtin type"
https://www.python.org/dev/peps/pep-0416/
=> my motivation was to develop a sandbox for Python
"PEP 351 -- The freeze protocol"
https://www.python.org/dev/peps/pep-0351/
=> I guess that the main motivation was to previous programming
mistakes, misuse of an API
The question is if you only want to have a technical solution to
prevent modification of module globals, or if you would like to
advertize that a variable is constant and use it somehow.
Victor
More information about the Python-ideas
mailing list