我根据 OpenAI Gym 框架创建了一个自定义环境;含step,reset,action,和reward功能。我的目标是在这个自定义环境上运行 OpenAI 基线。但在此之前,环境必须在 OpenAI 健身房注册。我想知道如何在 OpenAI 健身房注册自定义环境?另外,我是否应该修改 OpenAI 基线代码以包含此内容?
我是Python和装饰者的新手,所以如果这似乎是一个微不足道的问题,请道歉.
我正在尝试使用Python中的循环将装饰器应用于多个导入的函数,如下所示
from random import random, randint, choice
def our_decorator(func):
def function_wrapper(*args, **kwargs):
print("Before calling " + func.__name__)
res = func(*args, **kwargs)
print(res)
print("After calling " + func.__name__)
return function_wrapper
for f in [random, randint, choice]:
f = our_decorator(f)
random()
randint(3, 8)
choice([4, 5, 6])
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望输出采用以下形式:
Before calling random
<random_value>
After calling random
Before calling randint
<random_integer>
After calling randint
Before calling choice
<random_choice>
After calling choice
Run Code Online (Sandbox Code Playgroud)
但是,我只将选择函数的结果作为输出.
<random_choice among 4,5 6>
Run Code Online (Sandbox Code Playgroud)
装饰器还没有应用于任何函数,它看起来像random()和randint(3,8)调用没有被执行.
我想知道,这里出了什么问题以及如何使用循环来装饰多个导入的函数?
谢谢您的帮助