On Wed, Aug 5, 2020 at 2:03 PM Ricky Teachey <ri...@teachey.org> wrote:

>
> And btw this works:
>
> >>> class const(int):
> ...     def __new__(cls, name, val):
> ...         obj = super().__new__(cls, val)
> ...         obj.name = name
> ...         return obj
> ...     def about(self):
> ...         print(self.name, '=', self)
> ...
> >>> a = const('a', 5)
> >>> a
> 5
> >>> a.about()
> a = 5
>

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.
_______________________________________________
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/TCW3TAPS6WTHGENNL2G2M5DTCKQWRJE6/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to