python 中使用全局变量作为标志的逻辑问题
Logic problem using global variables as flags in python
我在尝试使用全局变量作为标志来确定函数的条件时遇到问题。
我才刚刚开始学习 Python 并且使用 C/C++ 已经好几年了。
简化代码如下(我没有 post 其余代码,因为我认为问题出在这些部分,并且可能是一个愚蠢的部分):
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' 语句中的标志值,但我想不出另一个这个的逻辑解决方案。
正如我所说,这可能是一个愚蠢的错误,并且有一个简单的解决方案,所以如果有人能帮助我,我将非常感激。
感谢您的回复。尝试制作一个最小的可重现示例,我检测到我的脚本逻辑没有任何问题,但我必须更深入地挖掘才能找到问题所在。
带来不便敬请谅解。
这个回答可以关闭了。
我在尝试使用全局变量作为标志来确定函数的条件时遇到问题。 我才刚刚开始学习 Python 并且使用 C/C++ 已经好几年了。
简化代码如下(我没有 post 其余代码,因为我认为问题出在这些部分,并且可能是一个愚蠢的部分):
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' 语句中的标志值,但我想不出另一个这个的逻辑解决方案。
正如我所说,这可能是一个愚蠢的错误,并且有一个简单的解决方案,所以如果有人能帮助我,我将非常感激。
感谢您的回复。尝试制作一个最小的可重现示例,我检测到我的脚本逻辑没有任何问题,但我必须更深入地挖掘才能找到问题所在。 带来不便敬请谅解。 这个回答可以关闭了。