相关疑难解决方法(0)

python生成器"发送"功能的目的?

有人能举例说明为什么与Python生成器函数相关的"发送"功能存在吗?我完全理解屈服函数.但是,发送功能让我很困惑.有关此方法的文档很复杂:

generator.send(value)
Run Code Online (Sandbox Code Playgroud)

恢复执行并将值"发送"到生成器函数中.value参数成为当前yield表达式的结果.send()方法返回生成器产生的下一个值,如果生成器退出而不产生另一个值,则引发StopIteration.

那是什么意思?我认为价值是功能的输入?短语"send()方法返回生成器产生的下一个值"似乎也是yield函数的确切目的; yield返回生成器产生的下一个值...

有人能给我一个利用发送器生成器的例子吗?

python

129
推荐指数
9
解决办法
6万
查看次数

装饰产生的功能

是否可行,如果可行,是可取的,如果是这样,建议的方法是什么来装饰产生价值的函数?

例如,考虑一下我编写的这个虚构的例子

def foobar_creator(func):
    def wrapped(**kwargs):
       res = func(**kwargs)
       flag = True
       for k,v in kwargs:
           if res % v == 0:
               flag = False
               yield k
       if flag: 
            yield res
     return wrapped

@foobar_creator
def generic_yielder(**kwargs):
     for i in xrange(sys.maxint):
           yield i

for i in generic_yielder(foo=3, bar=5, foobar=15):
      print i
Run Code Online (Sandbox Code Playgroud)

python yield generator decorator python-decorators

5
推荐指数
1
解决办法
1756
查看次数

标签 统计

python ×2

decorator ×1

generator ×1

python-decorators ×1

yield ×1