python - openAI gym TypeError:无法解压不可迭代的NoneType对象
问题描述
抱歉,我删除了此代码,我不需要帮助
import numpy as np
import gym
import matplotlib
import matplotlib.pyplot as plt
import tensorflow as tf
from env.BeamEnv import BeamEnv
解决方案
if
语句对于应用程序至关重要。因为它们是Dijkstra 1966 年结构化编程成分(序列、重复、选择)模型的一部分,今天仍然适用于 OOP、POP、FP、FRP 等其他范例。
而且您并没有过度使用它们(这可能会引发危险信号,即switch
声明)。
if
但是,如果您不想在要导出帧时进行渲染,我建议您合并您的两个条件。我不知道_render()
函数是做什么的,但如果它只在需要导出帧时使用,你应该把它放在 mainif
中以防止调用不必要的函数(init_plt()
和_render()
)
if render and self.episode_count % self.sample_freq == 0:
self._init_plt()
self._render(obs)
self.export_frames()
self.episode_count += 1
如果您采用上述代码,我想将您的条件放入一个返回布尔值的函数中。
if self.should_render(self.episode_count):
self.init_plt()
self._render(obs)
self.export_frames()
self.episode_count += 1
尽管如此,如果你总是一起使用init_plt()
and _render()
,你可以考虑编写一个调用它们的包装函数。只需使代码的主要逻辑更具可读性。请参阅 Robert Martin(鲍勃叔叔)关于干净代码的演讲。
推荐阅读
- halide - 如何对邻域或周围像素块进行操作?
- android - 如何为不同的产品风格定义两个不同版本的字符串?
- blazor - 如何在 Blazor 中处理 dialog.onclose 事件
- mysql - 一组中第一行和第二行之间的 SQL 平均时间
- python - Python:如何在外部文件中保存和提取分数和数据并将它们分类为高分
- excel - NA() 函数返回 #### 而不是字符串 #N/A
- codenameone - 我在哪里可以获得 CN1 模拟器的 iPhone 11 皮肤?
- python - 关于使用描述符实现类型检查的困惑
- python - Python:对非常量和非增加信号进行上采样
- c++ - 为什么我不能明确地向 std::make_pair 提供元素类型?