Jos*_*ian 6 python generator local
我可以在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
Run Code Online (Sandbox Code Playgroud)
是的,我知道我每次都能回归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
Run Code Online (Sandbox Code Playgroud)
打印:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
665 次 |
| 最近记录: |