Python 将正则函数转换为生成器

Python 将正则函数转换为生成器,python,Python,转换/修改正则函数以生成单个值生成器的pythonic方法是什么 可能的用法:在需要生成器的位置传递函数 我正在考虑这样做: # some function def foo(): return Bar() def gen_foo() yield foo() 你是说这个吗 def make_生成器(功能): 屈服函数() 你是这个意思吗 def make_生成器(功能): 屈服函数() 当你说把一个函数传递到一个需要生成器的地方时,我假设你说的是它需要一个可以使用for循环或n

转换/修改正则函数以生成单个值生成器的pythonic方法是什么

可能的用法:在需要生成器的位置传递函数

我正在考虑这样做:

# some function
def foo():
    return Bar()

def gen_foo()
    yield foo()
你是说这个吗

def make_生成器(功能):
屈服函数()
你是这个意思吗

def make_生成器(功能):
屈服函数()

当你说把一个函数传递到一个需要生成器的地方时,我假设你说的是它需要一个可以使用for循环或
next()进行迭代的序列(即迭代器)。在本例中,最简单的方法实际上不是围绕它生成包装函数,而是传递包含该函数的序列(假设函数不返回序列)。假设你有

def foo():
返回1
然后将其传递到需要序列的位置的最简单方法当然是元组或列表。注意,只有当函数期望它在内部使用for循环时,这才有效

(foo(),)
#或
[foo()]
但是,期望序列的函数可能会使用
next()
手动迭代所有内容,在这种情况下,您可以直接传入

iter([foo()]))
获取一个迭代器,该迭代器生成该函数,而不生成其他函数。这种方法基本上与您的
gen\u foo()
相同,并产生相同的结果。但是,您可能还希望迭代器返回函数的无限副本,在这种情况下,您可以使用

导入itertools
itertools.repeat(foo())

这将创建无限量的(返回值)
foo

当你说将一个函数传递到一个需要生成器的地方时,我假设你说的是它需要一个可以使用for循环或
next()
进行迭代的序列(即迭代器)。在本例中,最简单的方法实际上不是围绕它生成包装函数,而是传递包含该函数的序列(假设函数不返回序列)。假设你有

def foo():
返回1
然后将其传递到需要序列的位置的最简单方法当然是元组或列表。注意,只有当函数期望它在内部使用for循环时,这才有效

(foo(),)
#或
[foo()]
但是,期望序列的函数可能会使用
next()
手动迭代所有内容,在这种情况下,您可以直接传入

iter([foo()]))
获取一个迭代器,该迭代器生成该函数,而不生成其他函数。这种方法基本上与您的
gen\u foo()
相同,并产生相同的结果。但是,您可能还希望迭代器返回函数的无限副本,在这种情况下,您可以使用

导入itertools
itertools.repeat(foo())

这将创建无限量的(返回值)
foo

您是指函数生成器吗?您的解决方案有什么问题?我觉得很好…你的问题不清楚。请试着更好地解释你的意思,并给出一个不起作用的例子。你是说函数生成器吗?你的解决方案有什么问题?我觉得很好…你的问题不清楚。请试着更好地解释你的意思,并展示一个不起作用的例子。这是非常类似于蟒蛇的。这是非常类似于蟒蛇的。