我知道env=gym.make('CartPole-v0')gym.wrappers.time_limit.TimeLimit类型
我也知道env是cartpole.py类的一个“实例”。我的问题是,只要给CartPole-v0命名,我就可以访问CartPole.py类。该流程在哪里实施?我试图从site package文件夹的gym文件夹中查找它,但我找不到/无法理解该过程在哪里发生。我不确定我上面的陈述是否正确,我问这个问题是为了了解执行gym.make('CartPole-v0')的过程以及与之相关的任何主题,以便了解更多关于一般编码的信息。我猜我是误会了

最佳答案

https://github.com/openai/gym/blob/e689f93a425d97489e590bba0a7d4518de0dcc03/gym/envs/__init__.py#L53-L58
正如您在gym.envs模块的初始化py中看到的,该环境已注册到所有其他环境中。入口点告诉gym在使用这个版本的环境时要使用什么python类。除此之外,您还可以将其他关键字参数传递给环境构造函数。
make在其核心调用与这些行中看到的环境id对应的构造函数,以及一些附加步骤。
https://github.com/openai/gym/blob/e689f93a425d97489e590bba0a7d4518de0dcc03/gym/envs/registration.py#L85-L86

08-25 07:50