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

跨模块修改共享变量问题:如何让模块C输出预期值?

解决方法

首先明确代码中的两处关键问题:

  • 模块B错误调用了C.up(text),但up函数实际定义在模块A中;
  • 模块C执行时,模块B的代码未被触发,导致A的state始终是初始值。

修正后的代码

模块A(保持不变)

state = "yada yada"
def up(msg):
    global state
    state = msg

模块B(修正函数调用)

import A       
text = "nana nana"
A.up(text)  # 改为调用模块A的up函数,更新state

模块C(先触发模块B的执行)

import A
import B  # 导入B时会执行其中的代码,完成state的更新
print(A.state)

执行说明

直接运行模块C即可,此时导入B会触发其代码执行,调用A.up()更新state为"nana nana",之后打印就能得到预期结果。

你也可以通过主脚本控制执行顺序,比如新建main.py:

import A
import B
import C

运行main.py同样能得到正确输出。

内容的提问来源于stack exchange,提问作者Greggie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:06:20