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. ;-)
-- ~Ethan~