test.py
asd = ''
def upd():
asd = 'Anything'
def hello():
upd()
print('hello')
return asd
script.py
import test as tt
print(tt.hello())
how can i get updated 'asd' value in script.py ? anyone please suggest
You didn't update anything. upd
created a new local variable that was discarded after the call returned.
If you mean for upd
to update the global variable asd
, you need to declare the name as global first.
asd = ''
def upd():
global asd
asd = 'Anything'
def hello():
upd()
print('hello')
Now, after calling tt.hello
, you can access tt.asd
like any other module attribute.
import test as tt
tt.hello()
print(tt.asd)
(I am intentionally ignoring the issue of whether a function should be mutating the global variable asd
. There are reasonable use cases for doing so, and not enough context in the question to make any such judgement in this case.)