Issue 1542166: global variable: multiple id()-addresses (original) (raw)

The attachment contains an example where one single global variable appears at two different positions when applying the 'id(...)' function. The following files are attached:

core.py: contains the definition of the global variable, two example functions, and a minimal class definition.

test.py: a test program displaying that the global variable in core.py has two addresses.

result.txt: the output of the test.py procedure.

In practical this means that a variable 'my_module.global_var' may refer to two different objects!

Logged In: YES user_id=849994

In not_so_simple(), you reassign global_var. That means that it is bound to a different object afterwards.

The name "global_var" you imported into the test module, however, is bound to the original global_var object, and this binding will not change. If that's not what you want, you'll have to do "import core" and refer to "core.global_var".

Additionally, let me point out that using "global" to declare a name as global in a function that does not reassign that name is unnecessary.

Closing as Invalid.