questions from a lost sheep

Larry Bates larry.bates at
Fri Oct 3 06:17:16 CEST 2008

johannes raggam wrote:
> On Thu, 2008-10-02 at 15:18 -0500, skip at wrote:
>> Joe> I've started to think fondly of the rock-solid stability of Python,
>>     Joe> and have been wondering if perhaps aggressive unit testing could
>>     Joe> mitigate most of the problems of weak typing.
>> Note:  Python is not weakly typed.  It is dynamically typed.  But, yes,
>> there is no substitute for unit tests in a language like Python.
> just to make it maybe clearer - here an excerpt from the excellent book
> dive into python, which is also free available:
> """
> statically typed language: A language in which types are fixed at
> compile time. Most statically typed languages enforce this by requiring
> you to declare all variables with their datatypes before using them.
> Java and C are statically typed languages.
> dynamically typed language: A language in which types are discovered at
> execution time; the opposite of statically typed. VBScript and Python
> are dynamically typed, because they figure out what type a variable is
> when you first assign it a value.
> strongly typed language: A language in which types are always enforced.
> Java and Python are strongly typed. If you have an integer, you can't
> treat it like a string without explicitly converting it.
> weakly typed language: A language in which types may be ignored; the
> opposite of strongly typed. VBScript is weakly typed. In VBScript, you
> can concatenate the string '12' and the integer 3 to get the string
> '123', then treat that as the integer 123, all without any explicit
> conversion.
> So Python is both dynamically typed (because it doesn't use explicit
> datatype declarations) and strongly typed (because
> once a variable has a datatype, it actually matters).
> """
> cheers, hannes

That is a GREAT explanation of statically, dynamically, strongly and weakly 
typed languages. So many programmers are confused about these differences.  Many 
believe that statically typed is the only way to have strongly typed and they 
are incorrect.  Thanks for this.


More information about the Python-list mailing list