本文说的这个gym.ActionWrapper继承类的问题和gym.ObservationWrapper继承类的问题性质是一样的,具体看:

gym.ObservationWrapper使用时的注意点——reset和step函数可以覆盖observation函数

地址:

https://www.cnblogs.com/devilmaycry812839668/p/16729162.html

==========================================

代码:

import gym

class Wrapper(gym.ActionWrapper):
def __init__(self, env):
super(Wrapper, self).__init__(env) # def step(self, action):
# print("step execute!!!")
# obs, reward, is_done, info = self.env.step(action)
# return obs, reward, is_done, info def action(self, action):
print("action execute!!!")
return action env=gym.make("CartPole-v0")
env = Wrapper(env)
env.reset()
env.step(0)

运行结果:

import gym

class Wrapper(gym.ActionWrapper):
def __init__(self, env):
super(Wrapper, self).__init__(env) def step(self, action):
print("step execute!!!")
obs, reward, is_done, info = self.env.step(action)
return obs, reward, is_done, info def action(self, action):
print("action execute!!!")
return action env=gym.make("CartPole-v0")
env = Wrapper(env)
env.reset()
env.step(0)

运行结果:

==========================================

具体原理,看下gym.ActionWrapper的代码就很清楚了:

gym.ActionWrapper使用时的注意点——step函数可以覆盖observation函数的更多相关文章

  1. fgets()函数的详解以及使用时需要注意的一些细节-C语言基础

    这篇文章要探讨的是"fgets()函数的详解以及使用时需要注意的一些细节".涉及fgets()函数的应用和需要注意的问题.属于C语言基础篇(持续更新). fgets()(函数原型: ...

  2. scanf()函数的详解以及使用时需要注意的一些细节-C语言基础

    这篇文章要探讨的是"scanf()函数的详解以及使用时需要注意的一些细节".涉及scanf()函数的应用和需要注意的问题.属于C语言基础篇(持续更新). scanf()(函数原型: ...

  3. getchar()函数的详解以及使用时需要注意的一些细节-C语言基础

    这篇文章要探讨的是"getchar()函数的详解以及使用时需要注意的一些细节".涉及getchar()函数的应用和需要注意的问题.属于C语言基础篇(持续更新). 在C语言的学习过程 ...

  4. 这个demo是为解决IQKeyboardManager和Masonry同时使用时,导航栏上移和make.right失效的问题

    原文链接在我的个人博客主页 (一).引言: 在 IQKeyboardManager 和 Masonry 同时使用时,导航栏上移和make.right失效等问题多多. 其实我们完美的效果应该是这样的:* ...

  5. 关于homebrew使用时遇到的问题: Error: Could not symlink bin/gdb/usr/local/bin is not writable.

    # 关于homebrew使用时遇到的问题: Error: Could not symlink bin/gdb/usr/local/bin is not writable. 这是我在给我的Mac电脑安装 ...

  6. Cookie使用时需要注意个数及大小限制

    各浏览器对Cookie有一定的限制,在使用时需要格外注意. 各浏览器之间对cookie的不同限制:   IE6.0 IE7.0/8.0/9.0+ Opera FF Safari Chrome cook ...

  7. EntityFrameWork 使用时碰到的小问题

    EntityFrameWork 使用时碰到的小问题 1,在使用orm访问数据库的相目里,也要引用EntityFrameWork.dll,否则无法使用orm 否则,编译错误 错误 5 "Sys ...

  8. MySQL 安装和启动服务,“本地计算机 上的 MySQL 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”

    MySQL 安装和启动服务,以及遇到的问题 MySQL版本: mysql-5.7.13-winx64.zip (免安装,解压放到程序文件夹即可,比如 C:\Program Files\mysql-5. ...

  9. MaterialCalendarView使用时遇到的问题

    一.概述 MaterialCalendarView是一个开源项目.功能强大支持多选.单选.标注等. 二.问题 1.其继承自ViewGroup,故与CalendarView半毛钱关系都没有,完全是一个新 ...

  10. [备忘][转]rsync使用时的常见问题

    sync使用时的常见问题: 错误1: rsync: read error: Connection reset by peer (104) rsync error: error in rsync pro ...

随机推荐

  1. Java实现延迟执行代码

    Java实现延迟执行代码对于Java程序在它们的操作中添加延迟或暂停是比较常见的.这对于任务暂停直到另外任务完成执行场景比较有用.本文我们提供两类方法实现延迟执行. 1. 基于线程(Thread)方法 ...

  2. 项目管理--PMBOK 读书笔记(3)【项目经理的角色 】

    思维导图软件工具:https://www.xmind.cn/ 源文件地址:https://files-cdn.cnblogs.com/files/zj19940610/项目经理的角色.zip

  3. CSS 属性计算

    CSS 属性计算过程 你是否了解 CSS 的属性计算过程呢? 有的同学可能会讲,CSS属性我倒是知道,例如: p{ color : red; } 上面的 CSS 代码中,p 是元素选择器,color ...

  4. 使用Swig转换C++到别的编程语言

    项目github地址: aoce 设定aoce能分别与UE4/Unity3D/android demo对接,就这三来看,分别是C++/C#/java三种语言. C++导出给别的语言使用,一般来说,分为 ...

  5. 量子算法抛转(以及Oracle函数初步)

    接下来要接触量子算法了,我们会看到怎么利用量子并行机制和干涉原理.干涉在算法对结果进行测量求值时举足轻重. Deutsch-Jozsa 算法 DJ算法是量子算法的入门算法,就像编程界的"He ...

  6. SpringMVC springmvc.xml配置路径前缀和后缀

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" ...

  7. Java-Session服务器端会话技术

    Session 概念:服务器端会话技术,在一次对话的多次请求间共享数据,将数据保存在服务器端的对象中.HttpSession 快速入门: 获取Session对象 * HttpSession sessi ...

  8. linux 查看crontab任务执行情况

    首先创建一个定时任务,例如: */1 * * * * /usr/bin/curl http://******/admin/Keeperclock/keeper >> /data/wwwro ...

  9. oeasy教您玩转vim - 39 - # 剪切粘贴

    ​ 剪切粘贴 回忆上节课内容 我们大幅度地复习了整个 motion: 直接运动 h j k l 行运动 首行g g 末行G 第n行n G 单词运动 wbe w 是到下一个 word 的开头 b 是到当 ...

  10. Python 结合opencv实现图片截取和拼接

    实践环境 python 3.6.2 scikit-build-0.16.7 win10 opencv_python-4.5.4.60-cp36-cp36m-win_amd64.whl 下载地址: ht ...