Python 2.7 为什么会运行两次?
我制作了一个使用 即使是你,它也工作得很好,每次它检查一些东西,它都会做两次。我可以通过减少一半的机会来解决这个问题,但这是一条捷径,不是一个合适的解决办法Python 2.7 为什么会运行两次?,python-2.7,if-statement,while-loop,background-process,system-tray,Python 2.7,If Statement,While Loop,Background Process,System Tray,我制作了一个使用 即使是你,它也工作得很好,每次它检查一些东西,它都会做两次。我可以通过减少一半的机会来解决这个问题,但这是一条捷径,不是一个合适的解决办法 from systray import SysTrayIcon from random import randint def shutprogram(SysTrayIcon): something = getsomething() while True: if getsomething() != some
from systray import SysTrayIcon
from random import randint
def shutprogram(SysTrayIcon):
something = getsomething()
while True:
if getsomething() != something :
something = getsomething()
if randint(0,100) <= 10:
print "STOP, HAMMER TIME!"
stopthis()
else:
print "You may pass"
menu = (('Start', icon.next(), shutprogram),)
SysTrayIcon(icon.next(),"Shut Program",menu)
从systray导入SysTrayIcon
从随机导入randint
def关闭程序(SysTrayIcon):
something=getsomething()
尽管如此:
如果得到某物()!=一些东西:
something=getsomething()
如果randint(0100)哦,我得到了。当我尝试“getsomething”时,它必须等待一点,因为它有一些延迟,提示返回一个类似“wait,getting info”的字符串。每次你说getsomething()
,就会调用getsomething
函数。也许您想使用一个临时变量来避免这种情况。但是getsomething()是不应该干扰if-station的其他函数。您正在if语句中调用它(if getsomething()!=something:
)。然后,如果结果为真,您可以再次调用它:something=getsomething()
。我想我把它说错了。我不担心调用getsomething()两次,因为它只给我一个str/int/whatever,我不希望while循环运行两次并检查'if randint(0100)Well。。整个过程都在一个中,而True:
,所以它将永远循环,对吗?