在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()

解决方法

  1. 您没有在外部方法中返回任何内容,仅在内部生成器函数中返回了
  2. 您永远不会调用内部函数来实际创建生成器。

我无法确切说明您的要求,但这是将运行的代码:

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循环并将生成器视为可迭代的。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...