On Wed, Aug 5, 2020 at 3:40 PM Ethan Furman <et...@stoneleaf.us> wrote:

> On 8/5/20 11:11 AM, Jonathan Goble wrote:
>
> > That's literally useless, because after running that there is nothing
> > stopping you from doing:
> >
> >  >>> a = 10
> >
> > or even:
> >
> >  >>> a = "python has no constants"
> >
> > And now a has a value different from 5.
> >
> > There is nothing even remotely resembling const-ness to that class. In
> > order to get const-ness, you would need the ability to overload
> > assignments, like C++ can do. And Python can't do that, and that's
> > probably a good thing.
>
>      --> from aenum import Constant
>
>      --> class K(Constant):
>      ...   a = 5
>      ...   b = 'hello'
>      ...
>
>      --> K.a
>      <K.a: 5>
>
>      --> K.a == 5
>      True
>
>      --> K.a - 3
>      2
>
>      --> K.a = 9
>      Traceback (most recent call last):
>        ...
>      AttributeError: cannot rebind constant <K.a>
>
>      --> del K.a
>      Traceback (most recent call last):
>        ...
>      AttributeError: cannot delete constant <K.a>
>
> However, one can, of course:
>
>      del K
>
> There is only so much one can do.  ;-)
>
>
Actually, it is possible to do with Python, using an import hook. See
https://aroberge.github.io/ideas/docs/html/constants.html

André Roberge



> --
> ~Ethan~
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/VUZKCKX7CARMZI3BNDQRGA7U4HHDXDMP/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/SXWTG564JOGUF3USZJFOV5O3654I76UC/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to