Restricting attributes that can be set in Python
A reader of my book “Doing Math with Python” wrote to me a few weeks back about a strange
problem they were having. They were trying to create an animated projectile motion from the
code listing in the book. However, they were not seeing the expected results. Worse, there
were no errors. They figured the issue on their own eventually since I didn’t get the time
to reply back and the issue was there was an attribute center
on a class that was being set
in the correct version. However, the reader was by mistake setting the centre
. It’s easy
to do that - American versus British English. Learn more here
Anyway, coming back to Python, that is the default Python behavior of user-defined objects. If you are setting an attribute on an object that hasn’t been defined as an attribute of the object’s class, it will not complain. The solution is to implement your own custom restriction.
The solutions discussed in the stackoverflow post has solutions - one of which should work.