According to wikipedia, “A programming language is said to be dynamically typed when the majority of its type checking is performed at run-time as opposed to at compile-time. In dynamic typing values have types, but variables do not; that is, a variable can refer to a value of any type. ”
In statically typed language (like Java), you define a variable of certain type during declaration and its bound to that data type. Assigning the variable with values from different data type is caught during compile-time.
But in dynamically typed languages (like Python), every variable name is bound to an object. Based on the type of value assigned, data type of variable gets decided.
>>> var = 'some string' >>> print type(var) <type 'str'> >>> var = 4 >>> print type(var) <type 'int'>
You must have observed, the type of variable var changed based on the value assigned to it, hence dynamically typed.