The principles sound good. In practice, things are done by conventions. Special method and member names for example. There is no access level modifiers, and as a result, every member, whether it is a method or a data in a class is public. Encapsulation is not enforced by the language. In fact, object data, methods, even class meta information is managed by dictionary. Any client who gets hold of a reference of a class can dynamically change it. To me, it *IS* a flexible language, but is often abused by creative python coders. My experience with python is that it is very easy to learn and to write, but hell to read if it is written by others.