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