函数在python中循环时终止?

函数在python中循环时终止?,python,while-loop,Python,While Loop,我想创建一个函数保持运行,我可以根据输入定义该函数,使其对运行时间或迭代次数敏感。我似乎无法想出一种python方法来进行迭代,而不减少函数外部的计数器,例如: def keep_running(ttl): return ttl > 0 ttl = 1 while keep_running(ttl): do_stuff() ttl -= 1 是否有更好的方法来做到这一点,最好是完全在函数中运行?管理状态的最佳方法可能是在类中。您可以使用ttl值初始化对象loop

我想创建一个函数
保持运行
,我可以根据输入定义该函数,使其对运行时间或迭代次数敏感。我似乎无法想出一种python方法来进行迭代,而不减少函数外部的计数器,例如:

def keep_running(ttl):
    return ttl > 0

ttl = 1
while keep_running(ttl):
    do_stuff()
    ttl -= 1

是否有更好的方法来做到这一点,最好是完全在函数
中运行

管理状态的最佳方法可能是在类中。您可以使用
ttl
值初始化对象
loop\u context
,然后循环条件将是
loop\u context。keep\u running()
管理状态的最佳方法可能是在类内部。您可以使用
ttl
值初始化对象
loop\u context
,然后您的循环条件将是
loop\u context。请保持运行()
我不太确定您的要求。但迭代器可能对您有用。使用迭代器,可以是:

>>> def keep_running(ttl):
    while ttl>0:
        yield ttl
        ttl -= 1
>>> for one_round in keep_running(3):
    print(time.time())
结果是:

1365464545.465
1365464545.495
1365464545.505

我不太确定你的要求。但迭代器可能对您有用。使用迭代器,可以是:

>>> def keep_running(ttl):
    while ttl>0:
        yield ttl
        ttl -= 1
>>> for one_round in keep_running(3):
    print(time.time())
结果是:

1365464545.465
1365464545.495
1365464545.505