代码学习-编程新手
Code Study-New to programming
我是编程新手,一直在研究一些代码以了解 OOP.Here 是我所理解并需要帮助的,
1) import gym and env=gym.make('String') :意思是gym是一个库,而make是它下面的一个class?我们创建对象实例了吗?
我知道 classes 包含其中的方法..即函数..但在这种情况下我无法破译此 env.monitor.start() 之后的 clearly.The 行..这包含 3 个部分..每个部分表示什么..我认为 env 是之前实例化的对象。
import gym
env = gym.make('CartPole-v0')
env.monitor.start('/tmp/cartpole-experiment-1',force=True)
for i_episode in range(20):
observation = env.reset()
for t in range(1009):
env.render()
print(observation)
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
if done:
print("Episode finished after {} timesteps".format(t+1))
break
env.monitor.close()
感谢您的帮助,如果问题愚蠢,请道歉
gym
可以是包或模块。 import
语句不会告诉您 gym
是什么。
gym.make 表示您正在从 gym 调用一个名为 'make' 的方法。
env
那么 make('CartPole-v0')
returns 可能是也可能不是对象。它有一个似乎可以启动的监视器属性,从方法 monitor.start()
,所以我猜它是,但如果不查看 gym 的代码或调用 type(env)
就无法知道这一点.
env.monitor.start()
表示调用了env.monitor
开始的方法。 env.monitor
是什么不看gym的代码就不能确定
上面程序的基本结构如下:
import
语句将模块引入程序。这些模块包含函数。该模块能够使用这些功能。例如,
import myMod as mM
mM.fooFunc()
导入模块 myMod
并为其指定别名 mM
。 fooFunc
属于模块内部,因此我们可以调用它。
我们不需要别名。我们也可以直接说
import myMod
myMod.fooFunc()
不过稍微有点不方便
env
只是函数 gym.make('CartPole-v0')
的 return 值的名称。函数总是 return 某些东西,例如实际对象、整型(如整数或字符串)或 None
.
return值不需要一直存储,比如env.monitor.start('/tmp/cartpole-experiment-1',force=True)
。它只是执行一些数据操作。
至于程序的其余部分,它是 运行 by for-loop
s 和 if
语句。 Read about it here.
gym
可以是包或模块。无法通过其导入语句来判断它是什么。
env = gym.make('CartPole-v0')
可以将调用函数 make
的 return 值从 gym
分配给变量 env
,或者创建一个 class make
并将该项目分配给变量 env
env.monitor.start('/tmp/cartpole-experiment-1',force=True)
表示 env
变量最有可能 return 编辑了 class 的一个项目,该项目有一个名为 monitor
的 property/subclass。这个 property/subclass 拥有一个名为 start
的函数
env
很可能也有一个 subclass/property action_space
函数 sample
gym.make('CartPole-v0') returns 一个对象。
因此,'env'是一个对象。
'env'包含一个属性,'monitor',也是一个对象。
'start'方法是'monitor'对象的方法,不是环境对象。
env = gym.make('CartPole-v0')
env.monitor.start('/tmp/cartpole-experiment-1',force=True)
另一种写法是 (env.monitor).start('/tmp/cartpole-experiment-1',force=True)
为了重复,
env.reset()
#env is object, reset is method of env object
env.render()
#env is object, render is method of env object
env.action_space.sample()
#env is object, action_space is object, sample is method of action_space object
env.step(action)
#env is object, step is method of env object
我是编程新手,一直在研究一些代码以了解 OOP.Here 是我所理解并需要帮助的, 1) import gym and env=gym.make('String') :意思是gym是一个库,而make是它下面的一个class?我们创建对象实例了吗?
我知道 classes 包含其中的方法..即函数..但在这种情况下我无法破译此 env.monitor.start() 之后的 clearly.The 行..这包含 3 个部分..每个部分表示什么..我认为 env 是之前实例化的对象。
import gym
env = gym.make('CartPole-v0')
env.monitor.start('/tmp/cartpole-experiment-1',force=True)
for i_episode in range(20):
observation = env.reset()
for t in range(1009):
env.render()
print(observation)
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
if done:
print("Episode finished after {} timesteps".format(t+1))
break
env.monitor.close()
感谢您的帮助,如果问题愚蠢,请道歉
gym
可以是包或模块。 import
语句不会告诉您 gym
是什么。
gym.make 表示您正在从 gym 调用一个名为 'make' 的方法。
env
那么 make('CartPole-v0')
returns 可能是也可能不是对象。它有一个似乎可以启动的监视器属性,从方法 monitor.start()
,所以我猜它是,但如果不查看 gym 的代码或调用 type(env)
就无法知道这一点.
env.monitor.start()
表示调用了env.monitor
开始的方法。 env.monitor
是什么不看gym的代码就不能确定
上面程序的基本结构如下:
import
语句将模块引入程序。这些模块包含函数。该模块能够使用这些功能。例如,
import myMod as mM
mM.fooFunc()
导入模块 myMod
并为其指定别名 mM
。 fooFunc
属于模块内部,因此我们可以调用它。
我们不需要别名。我们也可以直接说
import myMod
myMod.fooFunc()
不过稍微有点不方便
env
只是函数 gym.make('CartPole-v0')
的 return 值的名称。函数总是 return 某些东西,例如实际对象、整型(如整数或字符串)或 None
.
return值不需要一直存储,比如env.monitor.start('/tmp/cartpole-experiment-1',force=True)
。它只是执行一些数据操作。
至于程序的其余部分,它是 运行 by for-loop
s 和 if
语句。 Read about it here.
gym
可以是包或模块。无法通过其导入语句来判断它是什么。
env = gym.make('CartPole-v0')
可以将调用函数 make
的 return 值从 gym
分配给变量 env
,或者创建一个 class make
并将该项目分配给变量 env
env.monitor.start('/tmp/cartpole-experiment-1',force=True)
表示 env
变量最有可能 return 编辑了 class 的一个项目,该项目有一个名为 monitor
的 property/subclass。这个 property/subclass 拥有一个名为 start
env
很可能也有一个 subclass/property action_space
函数 sample
gym.make('CartPole-v0') returns 一个对象。
因此,'env'是一个对象。
'env'包含一个属性,'monitor',也是一个对象。
'start'方法是'monitor'对象的方法,不是环境对象。
env = gym.make('CartPole-v0')
env.monitor.start('/tmp/cartpole-experiment-1',force=True)
另一种写法是 (env.monitor).start('/tmp/cartpole-experiment-1',force=True)
为了重复,
env.reset()
#env is object, reset is method of env object
env.render()
#env is object, render is method of env object
env.action_space.sample()
#env is object, action_space is object, sample is method of action_space object
env.step(action)
#env is object, step is method of env object