在循环中初始化变量 - 使用全局变量?
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()
我写了一个函数来截屏并检查它是否与旧的不同。示例代码如下。但是,我想知道 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()