文章目录
- 一、前文
- 二、源码
- 三、运行
一、前文
Python中,通过global
关键字实现多文件,跨文件的全局变量调用使用。
二、源码
app.py
全局变量文件,被调用的。其中有:
- 一个全局整数num
- 一个全局对象hero
class Hero():
def __init__(self):
self.a = 0
self.b = 0
global num
global hero
num = 0
def _init():
global num
global hero
hero = Hero()
num = 0
def setNum(value):
global num
num = value
def getNum():
global num
return num
main.py
调用1,边赋值,边打印。
import time
import app
import test
print('main.py')
app._init()
app.num = 1
app.hero.a = 1
app.hero.b = 10
for i in range(3):
app.num = i
app.hero.a = i
app.hero.b = i*10;
print('main num = ', app.num)
# print('main num addr = 0x{:X}', format(id(app.num)))
print('main hero.a = ', app.hero.a)
print('main hero.b = ', app.hero.b)
time.sleep(5)
test.py
调用2,只打印,不赋值。
import threading
import time
import app
def thread_handler():
print('thread_handler')
time.sleep(3)
for i in range(3):
print('test num = ', app.num)
# print('test num addr = 0x{:X}', format(id(app.num)))
print('test hero.a = ', app.hero.a)
print('test hero.b = ', app.hero.b)
time.sleep(5)
print('test.py')
thread = threading.Thread(target=thread_handler)
thread.start()
三、运行