Earlier quoted context omitted.
Python 3 has optional static typing: https://docs.python.org/3/library/typing.html https://realpython.com/python-type-checking/
Static typing is exactly what python doesn't have. It will remain dynamically typed. It has type hints which can be used with external tools to enforce type correctness to some degree, but python code will run even if you assign: def f(x: int): x = "str" f(42)
You can cast things or subvert the type system and the code will still run.
At least where I work, my build process prevents me from running Python code with invalid type annotations, so it's exactly the same as for Java is cpp or any other statically typed language.