Was sind die Unterschiede zwischen statischer und dynamischer Typisierung in Python?
Bei Python? Keine. Python kenn keine statische Type Deklarierung von Variablen oder Rückgabewerte von Funktionen. Es kennt höchstens Annotationen. [1]
Die Type Annotationen seit Python 3.6 helfen ausschliesslich während der Entwicklung, aber zur Laufzeit sind solche "Verletzungen" der Annotationen gültig.
my_var: int 
my_var = 5  # Passes type check. 
other_var: int  = 'a'  # Flagged as error by type checker, 
                       # but OK at runtime. 
Quelle: PEP 526 -- Syntax for Variable Annotations
Oder anders: Die Typenannotationen in Python sind etwa gleich hart wie die Typdefinitionen von TypeScript. Sie helfen in der Entwicklung, aber zur Laufzeit kann da theoretisch alles drin sein.
Fußnoten
[1] PEP 526 -- Syntax for Variable Annotations