Programming, Python.
use getter and setter methods instead of attributes, but the only reason to use getters and setters is so you can change the implementation later if you need to. However, Python 2.2 and later allows you to do this with properties: Protected members: Protected member is (in C++ and Java) accessible