python - 在 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 循环并将生成器视为可迭代的。
推荐阅读
- regex - 无法在对话流中将实体类型标记为正则表达式
- kubernetes - 在 Istio VS 中基于 URI 前缀将请求路由到服务
- php - Laravel 7 包控制器父类
- reactjs - React Suspense 并发模式不起作用
- java - 如何设置 Apache Ignite 缓存?
- node.js - req.session 返回错误值
- java - Spring Boot (v2.3.1) 与 swagger (v2.9.2) 的集成仅对 swagger-ui 失败,但适用于 swagger (v 2.8.0)
- php - Wordpress - 模板部分中断 wordpress 列布局
- python - 带参数的python SQL SP不起作用
- oracle - 如果更改绑定变量值,sql_id 是否会更改