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/