Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
80 views
in Technique[技术] by (71.8m points)

python - Unable to access the updated global variable's value

Suppose I have two Python files:

  1. abc.py:
from .config import *
update_a()
print_a() # prints 5
print(a)  # prints 2 rather than 5 even after calling update_a() and using global in update_a()
  1. config.py:
a = 2

def update_a():
    global a
    a = 5

def print_a():
    global a
    print(a) # prints 5

The global variable in config.py does not seem to have the updated value when accessed from abc.py.

question from:https://stackoverflow.com/questions/65914099/unable-to-access-the-updated-global-variables-value

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

When you do an import say from .config import *, the variable a is imported as a local scope. Any modification to a will happen within the scope in abc.py NOT in config.py whereas the call to update_a() and print_a() is modifying the variable a within config.py


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...