Static Typing in Python

Jacek Generowicz jacek.generowicz at
Wed Mar 17 22:44:56 CET 2004

JCM <joshway_without_spam at> writes:

> Jacek Generowicz <jacek at> wrote:

> which implies "weak typing" means there's the possibility of treating
> a piece of data as the wrong type.

Yes, consider

   "3" + 3

In languages that do not consider the above to be an error, you will
probably get "33" or 6 as the result. Whether one of those pieces of
data is treated as the wrong type or not, depends on your intentions.

> The FOLDOC definition
> which mentions things like
>   int a = 5;
>   float b = a;
> to me doesn't have anything to do with weak typing, since the int is
> correctly converted to a float.  I guess thay're calling it "weak
> typing" because the cast is implicit.

Yes, and the more implicit type conversion a language does, the more
likely it is to get it wrong (because what is correct depends on the
programmers intention), therefore there is a greater likelyhood of
getting the wrong result. Which is why I consider implicit type
conversions to be an aspect of weak typing. (However, I have no
problems with you not seeing it that way.)

If you don't call it "strong/weak typing", do you have an alternative
name to describe differences in how "easy going" a type system is?

Consider the following table.

            ML    Python   PERL

1.5 + 1     No     Yes     Yes

"3" + 3     No     No      Yes

ML is clearly stricter than Python, which is stricter than PERL. Do
you have a name for this sort of strictness ?

More information about the Python-list mailing list