Importing variables non-deterministic?

Antoon Pardon antoon.pardon at rece.vub.ac.be
Mon Aug 19 03:14:05 EDT 2013


Op 17-08-13 17:01, Steven D'Aprano schreef:
> 
> And here you re-import the name "y" from struct_global. That rebinds the 
> current module's "y" with whatever value struct_global.y has *now*, 
> rather than a second (or a minute, or an hour) earlier when the first 
> import took place. Obviously at some point between the first import and 
> the second import, struct_global.y must have been reassigned from -1 to 
> 62.
> 
> This goes to show why global variables are considered harmful, and why 
> clean, modern program design tries to reduce the use of them as much as 
> possible. Global variables are too easily modified by, well, *anything*. 
> The sort of behaviour you are seeing is sometimes called "action at a 
> distance" -- something, anything, anywhere in your program, possibly 
> buried deep, deep down inside some function you might never suspect, is 
> changing the global variable.

I think you are overstating your case. Classes and functions are
variables too and in general nobody seems to have a problem with them
being global.

-- 
Antoon Pardon




More information about the Python-list mailing list