python - 如何实现装饰生成器

标签 python generator

我有一些发电机:

def my_gen():
    while True:
        #some code
        yield data_chunk

我有一些函数,可以对数据格式进行一些操作

def my_formatting_func(data_chunk):
    #some code
    return formated_data_chunk

在不修改 my_gen 的情况下,创建由 my_formatting_func 格式化的 data_chunks 的生成器的最短方法是什么?

最佳答案

假设 Python 3.x 并且生成器不接受任何参数(后者很容易添加):

def wrapper(generator):
    def _generator():
        return map(my_formatting_func, generator())
    return _generator

@wrapper
def my_gen():
    # do stuff

对于 2.x,使用 itertools.imap 而不是 map

关于python - 如何实现装饰生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43945564/

相关文章:

python - 使用 Keras 进行实时训练和预测

python - Pandas:如何迭代第一级并从第二级随机选择,然后将子选择添加到数据帧

python - 如何修复 python 中 Windows 路径中的正斜杠问题?

python - 如何使用 Pygame 创建 "play again"选项

javascript - 由于生成器不能使用回调,如何将 TensorFlow.js tf.data.generator 用于远程数据源

php - 在网页中单击按钮时,如何显示列表中的随机短语?

javascript - 如何在 n 秒后停用 MutationObserver?

python - JIRA:使用 python-jira lib 更新冲刺状态

python - 烦人的生成器错误

Perl 脚本生成所有字符(包括非字母): How do I transform a number into base 27?