You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 03:20:15