- Strange OOP:
len(s)through__len__(self)and other "special methods"- extra special methods which could be derived from other special methods (
__add__and__iadd__for+and+=) selfas first method parameter- you can forget to call base class constructor
- no access modifiers (private, protected ...)
- no constant definitions
- no immutability for custom types
- GIL
- poor performance which leads to a mix of Python and C and troubles with builds (looking for C libs, platform dependencies ...)
- bad documentation, especially in third party libs
- incompatibility between Python 2.x and 3.x
- poor code analysis tools (compared to what is offered for statically typed languages such as Java or C#)