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

如何在Python类中修改全局变量并使修改后的值全局生效

问题原因
  • 仅创建了Test类的实例,没有调用testing()方法,所有修改全局变量的逻辑都封装在该方法中,未执行自然不会生效
  • 原有判断逻辑仅能根据a的取值修改cross或circle其中一个变量,无法同时将两个变量设为True,和你预期的输出要求不匹配
修复方案

你只需要在实例化后主动调用testing()方法,再根据你的需求调整判断逻辑即可,符合「修改变量的逻辑放在类中」的要求,修改后的可运行代码如下:

cross = False
circle = False
count = 0

a = 'cross'


class Test:
    def testing(self):
        global count, cross, circle
        count += 1
        if a == 'cross':
            cross = True
            circle = True
        elif a == 'circle':
            circle = True
            cross = True


Test().testing()
print(cross)
print(circle)
print(count)

运行后输出结果和你预期一致:

True
True
1

如果你不需要同时将cross和circle都设为True,仅需要类内修改全局变量生效,只需要加testing()的调用即可,不需要调整判断逻辑,此时运行输出为:

True
False
1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:27:02