PEP 3107 and stronger typing (note: probably a newbie question)

Stephen R Laniel steve at
Wed Jun 20 20:53:38 CEST 2007

Before I ask anything, let me note that this is surely an
old question that has inspired its share of flame wars; I'm
new to Python, but not new to how Internet discussions work.
So if there's a canonical thread or web page that documents
the whole battle, feel free to point me to it.

Reading [1], I wonder: why isn't the compiler making better
use of (purely optional) type labeling? Why not make a compiler
directive so that

a) it will check the types of all my arguments and return
   values, and maybe even
b) do some type inference up the call stack?


def( Class1 arg1, Class2 arg2, ..., ClassN argN ):

would check the types of the arguments, whereas

def( arg1, arg2, ..., argN):

would not? I.e., if I *want* strong static
type-checking, why shouldn't I be able to get it? Is it that
allowing this as a compile-time option would mess up too
many knobs to make it optional?

Again, probably an old debate. I'd like to know why Guido's
decided that not only is strong static typing
productivity-reducing [2], but that it should be *forbidden*.

[1] -
[2] -

Stephen R. Laniel
steve at
Cell: +(617) 308-5571
PGP key:

More information about the Python-list mailing list