python 我在python中收集有用的生成器示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 我在python中收集有用的生成器示例相关的知识,希望对你有一定的参考价值。

from time import time

class generators(object):
    """ My collection of useful generator examples in python
        by: Cody Kochmann """
        
    def started(generator_function):
        """ starts a generator when created """
        def wrapper(*args, **kwargs):
            g = generator_function(*args, **kwargs)
            next(g)
            return g
        return wrapper

    @staticmethod
    @started
    def sum():
        "generator that holds a sum"
        total = 0
        while 1:
            total += yield total

    @staticmethod
    @started
    def counter():
        "generator that holds a sum"
        c = 0
        while 1:
            yield c
            c += 1

    @staticmethod
    @started
    def avg():
        """ generator that holds a rolling average """
        count = 0.0
        total = generators.sum()
        i=0
        while 1:
            i = yield (total.send(i)*1.0/count if count else 0)
            count += 1

    @staticmethod
    @started
    def timer():
        """ generator that tracks time """
        start_time = time()
        previous = start_time
        while 1:
            yield time()-start_time

以上是关于python 我在python中收集有用的生成器示例的主要内容,如果未能解决你的问题,请参考以下文章

如何更好地理解Python迭代器和生成器

python 生成随机ASCII字符和数字的连续流。有用的快速生成随机文件。

在 Python 中使用 Paramiko 从 top 命令收集输出

收集系统信息

Python大法之告别脚本小子系列—信息资产收集类脚本编写(下)

Python - 垃圾收集非常慢,无法禁用 gc