问题描述
我在尝试使用全局变量作为标志来确定函数的条件时遇到问题。 我刚开始学习 Python,自从使用 C/C++ 已经好几年了。
简化后的代码如下(剩下的代码我就不贴了,因为我觉得问题出在这些部分,而且可能是一个愚蠢的部分):
def func1():
global flag1
global flag2
if flag1 or flag2:
if flag1:
'do something'
return x
elif flag2:
'do something'
return X
else:
pass
else:
if 'condition_1 is met':
flag1 = True
'do something'
return x
elif 'condition_2 is met':
flag2 = True
'do something'
return x
else:
pass
def func2():
func1()
window.after(100,func1)
if __name__=='__main__':
flag1 = False
flag2 = False
'func2' 一直在运行,因此 'func1' 也一直在运行,因为它是从 'func2' 内部调用的。
我得到的错误是“在赋值之前使用 flag1 和 flag2 变量”,我认为这是因为我试图更改 'if' 语句中的标志值,但我想不出另一个逻辑解决方案一个。
就像我说的,这可能是一个愚蠢的错误,有一个简单的解决方案,所以如果有人能帮助我,我将不胜感激。
解决方法
感谢您的回复。试图制作一个最小的可重复示例,我发现我的脚本逻辑没有任何问题,但我必须深入挖掘才能找到问题所在。 带来不便敬请谅解。 这个答案可以关闭。