【发布时间】:2022-11-11 02:03:09
【问题描述】:
假设一个 api 返回一个生成 Person 对象的 python 生成器
# Example person class
# p = Person()
# p.name = "Jane Doe"
# p.age = 25
people = api.get_people() # returns generator
for person in people:
print(person.name)
但我的消费代码需要一个名称迭代器。
是否可以将原始生成器转换或包装成产生对象属性而不是对象本身的新生成器?也就是说,产生名称字符串而不是人员对象?如果是这样,怎么做?
names = name_getter(api.get_people()) # somehow wrap into a new generator?
for name in names:
print(name)
【问题讨论】:
-
Person是一个类吗?什么是原始生成器? -
@Pto:Person 只是一个随意的例子。原始生成器来自对第 3 方 api 的调用。 api 返回一个生成对象的生成器。
-
你真的知道如何编写生成器吗?包装另一个生成器和处理属性似乎与问题无关。
-
@User我只想找出比“使用生成器语法创建生成器”还需要什么。
标签: python attributes generator wrapper