questions from a lost sheep

johannes raggam raggam-nl at adm.at
Thu Oct 2 17:08:32 EDT 2008


On Thu, 2008-10-02 at 15:18 -0500, skip at pobox.com 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).
"""
http://diveintopython.org/getting_to_know_python/declaring_functions.html#d0e4188


cheers, hannes




More information about the Python-list mailing list