文章目录

  • 一、前文
  • 二、源码
  • 三、运行


一、前文

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()

三、运行

Python global 全局变量,多文件,跨文件使用_开发语言