如何在example()函数执行完毕后设置全局变量number=1?
实现函数执行完成后再初始化全局变量
同步函数场景
如果example()是普通的同步函数,直接按顺序执行即可——先调用函数,待其执行完毕后再定义全局变量number。此时在函数执行前访问number会触发NameError,符合“变量不可用”的要求:
def example(): # 这里是你的函数逻辑,比如模拟耗时操作 print("example 执行中...") # 实际业务代码写在这里 # 此时访问 number 会报错(未定义) # print(number) # 取消注释会触发 NameError # 先执行 example 函数 example() # 函数执行完成后,设置全局变量 number = 1 # 现在可以正常访问变量 print(number) # 输出: 1
多线程场景
如果example()是在子线程中运行的,需要用join()方法等待线程执行完毕后再赋值:
import threading import time def example(): print("example 线程执行中...") time.sleep(2) # 模拟耗时操作 # 创建并启动线程 thread = threading.Thread(target=example) thread.start() # 等待线程执行完成 thread.join() # 线程结束后设置全局变量 number = 1 print(number) # 输出: 1
异步函数场景
如果example()是异步函数,需要用await等待其执行完成后再设置变量:
import asyncio async def example(): print("example 异步函数执行中...") await asyncio.sleep(2) # 模拟异步操作 async def main(): # 等待异步函数执行完成 await example() # 声明并设置全局变量 global number number = 1 print(number) # 输出: 1 asyncio.run(main())
内容的提问来源于stack exchange,提问作者kvadrato
相关产品推荐
相关产品推荐

