Pythonic方法调用带有一组参数的函数,直到它返回除非

2024-03-28 11:41:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道使用for循环并调用我的函数,直到我得到的返回值不是None,但我正在寻找一些内置的python,可以在这里提供帮助。你知道吗

例如-iter(myfunc(), None)它将调用myfunc(),直到返回None

我正在寻找与此完全相反的代码,例如-iter(myfunc(), not None), Call myfunc(),直到它返回除None之外的任何东西

提前谢谢。。你知道吗


Tags: 函数代码nonefornotcallmyfunc内置
3条回答

不要什么都找一个内置的。在我看来,即使是通常的双参数形式的iter也不值得使用,因为它不是一个众所周知的特性,这使得大多数人更难阅读。保持简单明了。多排一两行不会有什么坏处。你知道吗

while True:
    x = myfunc()
    if x is not None:
        break

只有三行:

x = None
while x is None:
    x = f()

没有现成的内置函数,但构建生成器函数很容易:

def iter_while_none(f):
    while True:
        value = f()
        if value is not None:
            return
        yield value

虽然产生的值不是那么有趣,但毕竟每次都是None。你知道吗

相关问题 更多 >