Static Typing in Python
jacek.generowicz at cern.ch
Wed Mar 17 22:44:56 CET 2004
JCM <joshway_without_spam at myway.com> writes:
> Jacek Generowicz <jacek at lxplus057.cern.ch> wrote:
> which implies "weak typing" means there's the possibility of treating
> a piece of data as the wrong type.
"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