相关疑难解决方法(0)

Python的生成器和迭代器之间的区别

迭代器和生成器之间有什么区别?关于何时使用每种情况的一些示例会很有帮助.

python iterator generator

482
推荐指数
13
解决办法
13万
查看次数

是否有Python函数检查生成器是否已启动?

我尝试定义一个生成器函数mycount(),可以使用生成器函数重置,send(0)如下例所示.一切正常,除非我使用send(0)尚未启动的新生成器对象.在这种情况下,它给出了一个TypeError.是否有任何函数检查生成器是否已启动,或者我是否必须捕获TypeErrormycount(0)在这种情况下创建新的生成器对象?

def mycount(value):
    while True:
        v = yield value
        if v == None:
            value = value + 1
        else:
            value = v

g = mycount(3)
print(next(g))    # prints 3
print(next(g))    # prints 4
print(g.send(0))  # prints 0
print(next(g))    # prints 1
print(next(g))    # prints 2

g2 = mycount(3)
g2.send(0)
# TypeError: can't send non-None value to a just-started generator
Run Code Online (Sandbox Code Playgroud)

python generator

7
推荐指数
1
解决办法
1802
查看次数

如何检查是否使用了发电机?

有可能知道是否使用了发电机?即

def code_reader(code):
   for c in code:
        yield c

code_rdr = code_reader(my_code)

a = code_rdr.next()

foo(code_rdr)
Run Code Online (Sandbox Code Playgroud)

经过foo电话,我想知道,如果.next()是呼吁code_rdr通过foo与否.当然我可以通过一些带有next()调用计数器的类来包装它.有没有简单的方法呢?

python yield generator

4
推荐指数
1
解决办法
171
查看次数

标签 统计

generator ×3

python ×3

iterator ×1

yield ×1