问题描述
我有以下代码,我需要一次使用从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()
解决方法
- 您没有在外部方法中返回任何内容,仅在内部生成器函数中返回了 。
- 您永远不会调用内部函数来实际创建生成器。
我无法确切说明您的要求,但这是将运行的代码:
right: -200px;
您应该使用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()
来获取值,或者可以使用for循环并将生成器视为可迭代的。