在 python 中使用生成器函数访问输出时出现问题
Issue in accessing the output using generator functions in python
我有下面的代码,我需要一次使用从 CSV 文件中检索到的数据的一个元组执行一些操作,然后在再次调用 step 函数时移动到下一个元组。我不明白如何使用 obs 变量。当我检索时,我得到一个生成器对象。非常感谢帮助。
def get_state(self):
def createGenerator(self):
obs_data = [tuple(x) for x in self.data[['value_1']],
'value_2']].to_numpy()]
for obs in obs_data:
yield obs
def step(self):
ob = self.get_state()
- 您没有在外部方法中返回任何内容,仅返回内部生成器函数。
- 您永远不会调用内部函数来实际创建生成器。
我不能确切地说出你要的是什么,但这里的代码将 运行:
def get_state(self):
def createGenerator():
obs_data = [tuple(x) for x in self.data[['value_1']],
'value_2']].to_numpy()]
for obs in obs_data:
yield obs
if self.gen is None:
self.gen = createGenerator()
return next(self.gen)
def step(self):
ob = self.get_state()
您应该使用 next()
来获取值,或者您可以使用 for 循环并将生成器视为可迭代对象。
我有下面的代码,我需要一次使用从 CSV 文件中检索到的数据的一个元组执行一些操作,然后在再次调用 step 函数时移动到下一个元组。我不明白如何使用 obs 变量。当我检索时,我得到一个生成器对象。非常感谢帮助。
def get_state(self):
def createGenerator(self):
obs_data = [tuple(x) for x in self.data[['value_1']],
'value_2']].to_numpy()]
for obs in obs_data:
yield obs
def step(self):
ob = self.get_state()
- 您没有在外部方法中返回任何内容,仅返回内部生成器函数。
- 您永远不会调用内部函数来实际创建生成器。
我不能确切地说出你要的是什么,但这里的代码将 运行:
def get_state(self):
def createGenerator():
obs_data = [tuple(x) for x in self.data[['value_1']],
'value_2']].to_numpy()]
for obs in obs_data:
yield obs
if self.gen is None:
self.gen = createGenerator()
return next(self.gen)
def step(self):
ob = self.get_state()
您应该使用 next()
来获取值,或者您可以使用 for 循环并将生成器视为可迭代对象。