在Python中将yield语句转换为生成器表达式

我有一个关于将yield语句转换为生成器表达式的问题

所以我有这样一个小的yield方法,它得到一个函数和一个起始号作为它的输入,并且基本上为每个之前被称为ie的数字调用函数:

  • 第一次通话返回初始号码
  • 第二次调用返回函数(初始数字)
  • 第三个调用返回该函数(第二个数字)
  • 第四次呼叫返回功能(第三个号码)
  • 等等。这里是Python中的代码:

    def some_func(function, number):
        while True:
            yield number
            number = function(number)
    

    将这段代码转换为Generator Expression的方式有哪些? 我猜测,这样做有一种非常pythonic和优雅的方式,但我无法绕开它。

    我对Generator表达式很不熟悉,因此我寻求帮助,但我想扩展我对Gen Exp的总体了解,尤其是Python


    坚持你现在拥有的东西。 你可以将函数转换为一个生成器表达式,但它会是一个不可读的混乱。

    生成器表达式需要另一个迭代器来循环,这是您的生成器函数不具备的。 生成器表达式也不能真正访问任何其他变量; 还有就是表达和循环,可选if过滤器和多环。

    这是一个生成器表达式的样子:

    from itertools import repeat
    
    number = [number]
    gen = ((number[0], number.__setitem__(0, function(number[0]))[0] for _ in repeat(True))
    

    我们滥用number作为“变数”。

    链接地址: http://www.djcxy.com/p/54339.html

    上一篇: Converting a yield statement to a Generator Expression in Python

    下一篇: What is the result of a yield expression in Python?