有没有办法添加/修改使用yield创建的生成器的属性?
所以我想制作一个 arff reader (类似于csv 文件格式)。
我想使用 yield 来创建一个迭代器,同时也向该迭代器添加属性。
例如:
data = arff.reader(my_fname)
print data.relation
for row in data:
print row
但在读者定义中:
def reader(fname):
reader.relation = fname # this is assigned to the function, not the generator
yield 1
yield 2
有没有办法使用yield 来做到这一点,或者我是否坚持使用迭代器api?
So I wanted to make an arff reader (similar to csv file format).
And I wanted to use yield
to make an iterator but also to add attributes to this iterator.
eg:
data = arff.reader(my_fname)
print data.relation
for row in data:
print row
but in the reader definition:
def reader(fname):
reader.relation = fname # this is assigned to the function, not the generator
yield 1
yield 2
Is there a way to do this using yield or am I stuck with the iterator api?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你可以把它变成一个类。
You can make it a class.