python中使用全局变量作为标志的逻辑问题

问题描述

我在尝试使用全局变量作为标志来确定函数的条件时遇到问题。 我刚开始学习 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' 语句中的标志值,但我想不出另一个逻辑解决方一个

就像我说的,这可能是一个愚蠢的错误,有一个简单的解决方案,所以如果有人能帮助我,我将不胜感激。

解决方法

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