does lack of type declarations make Python unsafe?

Brandon Corfman bcorfman at
Thu Jun 19 14:29:12 CEST 2003

Steven Taschuk wrote:
> However, I suspect that the question that's actually frequently
> asked is something like:
>     "I'm used to C/C++/Java, and I rely on the compiler using the
>     variable declarations to tell me when I've made a type error or
>     mistyped a name.  How can I avoid these kinds of bugs in Python?"
OK, that's clearer. I can give that a shot.

>>I don't see what there is to fear in this regard either. Lisp/Dylan have 
>>done optional typing and range checking, and it improves safety as well 
>>as performance -- without changing the character of the languages or how 
>>they're used. I don't see why Python would be any different.
> Sounds fine to me.  Want to write the patch?  :)
Ha, I think you're trying to trick me. :D Maybe I should start with a 
PEP. I suspect I'll have to catch up on all those types-sig messages first.
>>[...] The multiple variable assignment and 
>>multiple return values in Python allows for programming without 
>>side-effects. [...]
> But assignment is the quintessential side-effecty operation, nyet?
Yes, of course, but to quote Paul Graham,
"Having functional programming as an ideal doesn’t imply that programs 
should never have side effects.It just means that they should have no 
more than necessary." [1]

Localizing side effects to passed-in & return values only makes it much 
easier to track down bugs, IMO. If you have too many member 
variables/globals holding state for your functions, then it becomes a 
real problem to setup unit tests or to quickly evaluate success from the 
command prompt.

Best regards,

[1] "On Lisp", Paul Graham, p. 31.

More information about the Python-list mailing list