Indeed, this is one of the biggest problems of Python for large-scale projects (saying this as an avid Pythonista myself). This is due to dynamic typing, though, not weak typing (Python's typing is actually strong).
Weak typing has its merits but sometimes static typing is very useful for reading and understanding code.
Weak typing has its merits but sometimes static typing is very useful for reading and understanding code.