在循环中初始化变量 - 使用全局变量?

Initialize variable in loop - use global variable?

我写了一个函数来截屏并检查它是否与旧的不同。示例代码如下。但是,我想知道 python 设置变量 oldimage 和 image 的最佳实践。特别是 oldimage 需要在 main() 第一次启动之前设置。我是否使用全局变量?

def main():
    image=screenGrab()
    if equal(image,oldimage):
        pass
    else:
        dosomething()
        oldimage=image

while True:
    main()

使用全局变量几乎不是正确的解决方案。它通常最终导致的问题多于解决方案。继续@MartijnPieters,我将按如下方式组织您的代码:

def main():
    oldimage = loadLastImage()

    while True:
        image=screenGrab()
        if not equal(image,oldimage):
            dosomething()
            saveLastImage(image) # this is the opposite of loadLastImage()
            oldimage=image

# this is the more accepted way of running main 
# because it still allows your code to be loaded as module
if __name__ == "__main__":
    main()