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' 语句中的标志值,但我想不出另一个这个的逻辑解决方案。

正如我所说,这可能是一个愚蠢的错误,并且有一个简单的解决方案,所以如果有人能帮助我,我将非常感激。

感谢您的回复。尝试制作一个最小的可重现示例,我检测到我的脚本逻辑没有任何问题,但我必须更深入地挖掘才能找到问题所在。 带来不便敬请谅解。 这个回答可以关闭了。