python global variable between modules -


i have 2 modules , i'm trying modify global variable in first module second module.

app.py:

import time  glob=0;  def setval(val):     global glob     glob = val     print "glob = "+glob   def bau():     while(1):       if(glob):        print"glob set"       else:        print"glob unset"       time.sleep(1)  bau() 

start.py:

from app import setval app.setval(1) 

i not able understand why in start.py full content of app.py included , not function want.

second don't understand why running first app.py , start.py, start.py not modify value of global variable in app.

i not able understand why in start.py full content of app.py included , not function want.

you misunderstand how import works. runs script importing , then binds things defined inside. if wish import function script not supposed other declarations, i.e. remove bau() line.

so declare functions, classes , constants inside scripts , in 1 root script call them.

second don't understand why running first app.py , start.py, start.py not modify value of global variable in app.

that's because setval() never reached due bau() call, i.e. start.py blocked on import statement.


side note: suggest stop using globals. wrap functions/classes , pass parameters around. globals hard control.


Comments

Popular posts from this blog

Spring Boot + JPA + Hibernate: Unable to locate persister -

go - Golang: panic: runtime error: invalid memory address or nil pointer dereference using bufio.Scanner -

c - double free or corruption (fasttop) -