是否有可能,如果是这样,建议,如果是这样,那么装饰产生价值的函数的推荐方法是什么?装饰函数产生
例如,考虑这个假想例子我由
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
看起来过于复杂。 “装饰能产生价值的功能”的意思是什么?你有什么用例? – 2014-11-23 10:35:05
@ivan_pozdeev用例:我有一堆发生器函数可以从api产生新的值。我想应用过滤器而不触及现有的功能。所以对于一个精简的例子'def get_new():result = new_result(); yield result'我想过滤掉并只产出,说包含字符串'foobar'的结果,而不会破坏复杂的'new_result'进程 – yayu 2014-11-23 11:03:55