是否有可能,如果是這樣,建議,如果是這樣,那麼裝飾產生價值的函數的推薦方法是什麼?裝飾函數產生
例如,考慮這個假想例子我由
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