Programmiersprachen können, was ihren Umgang mit den Anforderungen der Typisierung von Funktionen, Variablen und Objketen folgendermaßen eingeteilt werden:
Statisch typisierte Sprache: Eine Sprache, in der die Typen zur Kompilierzeit festgelegt sind. Die meisten statisch typisierten Sprachen erzwingen dies, indem sie verlangen alle Variablen mit ihren Datentypen deklariert werden müssen, bevor man sie verwenden kann. Java und C sind statisch typisierte Sprachen.
Dynamisch typisierte Sprache: Eine Sprache, in der die Typen zur Ausführungszeit ermittelt werden; das Gegenteil von statisch typisiert. VBScript und Python sind dynamisch typisiert, weil sie den Typ einer Variablen ermitteln, wenn Sie ihr zum ersten Mal einen Wert zuweisen.
Stark typisierte Sprache: Eine Sprache, in der Typen immer erzwungen werden. Java und Python sind stark typisiert. Wenn man eine ganze Zahl hat, kann man sie nicht wie eine Zeichenkette behandeln, ohne sie explizit zu konvertieren.
Schwach typisierte Sprache: Eine Sprache, in der Typen ignoriert werden können; das Gegenteil von stark typisiert. VBScript ist schwach typisiert. In VBScript kann die Zeichenkette '12' und die ganze Zahl 3 verketten, um die Zeichenkette '123' zu erhalten, die man dann als die ganze Zahl 123 behandelt, ohne dass eine explizite Konvertierung erforderlich ist.
Python ist also sowohl dynamisch typisiert (weil es keine expliziten Datentyp-Deklarationen verwendet) als auch stark typisiert (weil sobald eine Variable einen Datentyp hat, dieser tatsächlich von Bedeutung ist).