On 13 December 2011 13:30, Jean-Michel Pichavant <jeanmic...@sequans.com>wrote:
>
> writing
>
> x = 1
>
> def spam():
>   x = 2
>
> is in general a bad idea. That was my point.


Why? I have a few (probably wrong) guesses.

Because you expect it to be the same every time you use it?
Well, then this should be "in general a bad idea":
 x = 1; print(x); x = 2; print(x)
Even though it makes total sense to me.

Is it because it's used to different purpose between similarly-looking
functions?
This looks fine, though:
def func1(): x=1; print(x)
def func2(): x=2; print(x)

Is it because it looks like a reassignment of the more global x?
I don't have an example here but, simply put, I don't believe this. We can
use "id" as our own local variable without thinking that we're tampering
with "__builtins__.id". I don't see it as much of a leap from builtin to
global (except that you **can** do "dir = 1; del dir; dir" without error).

That said, I'm sorta' just guessing the reason you might think it's a bad
idea.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to