在无限函数中仅执行一次语句的有效方式?

时间:2018-08-07 21:44:11

标签: python python-3.x

我有一个变量a,它在每次函数运行时都会改变其值。一旦a等于某些数字一次,我就需要它做某件事,并且永远不要再做一次。我该怎么办?

这是我到目前为止的问题,问题在于,每次a等于某个数字时,它就会运行,而不仅仅是一次。

def function():
    if a == 1:
        // do stuff for 1 once

    if a == 32:
        // do stuff for 32 once

    if a == 10:
        // do stuff for 10 once

while True:
    function()

1 个答案:

答案 0 :(得分:1)

一个简单的答案是使用set来跟踪已经看到的值:

seen = set()

def function():
    if a in seen:
        return
    else:
        seen.add(a)

    if a == 1:
        // do stuff for 1 once

    if a == 32:
        // do stuff for 32 once

    if a == 10:
        // do stuff for 10 once

while True:
    function()