本文说的这个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,env,action,self From: https://www.cnblogs.com/devilmaycry812839668/p/16729214.html