gpt4 book ai didi

python - 向 Python 生成器添加成员变量/方法?

转载 作者:太空狗 更新时间:2023-10-29 22:17:21 25 4
gpt4 key购买 nike

我可以向 Python 生成器添加成员变量/方法吗?

我想要以下几行内容,以便我可以“窥视”成员变量 j:

def foo():
for i in range(10):
self.j = 10 - i
yield i

gen = foo()
for k in gen:
print gen.j
print k

是的,我知道我每次都可以返回 i 和 j。但我不想那样做。我想偷看生成器中的局部。

最佳答案

您可以创建一个对象并操纵 __iter__界面:

class Foo(object):
def __init__(self):
self.j = None
def __iter__(self):
for i in range(10):
self.j = 10 - i
yield i

my_generator = Foo()

for k in my_generator:
print 'j is',my_generator.j
print 'k is',k

打印:

j is 10
k is 0
j is 9
k is 1
j is 8
k is 2
j is 7
k is 3
j is 6
k is 4
j is 5
k is 5
j is 4
k is 6
j is 3
k is 7
j is 2
k is 8
j is 1
k is 9

关于python - 向 Python 生成器添加成员变量/方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1942328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com