簡體   English   中英

為什么我會收到“缺少 1 個必需的位置參數:”錯誤?

[英]Why am I getting a 'missing 1 required positional argument:' error?

我收到錯誤消息init () missing 1 required positional argument: 'environment' for line player_o = QLearningAgent() 在編寫構造函數方面沒有經驗。 請您解釋為什么我會收到此消息以及如何更正它?

class RandomAgent:
    def choose_action(self, env):
        action = np.random.choice(np.array(env.available_actions))
        return action


class QLearningAgent:
    def __init__(self, environment, alpha=0.1, epsilon=0.2, gamma=1):
        self.environment = environment
        self.alpha = alpha
        self.epsilon = epsilon
        self.gamma = gamma
        self.Q = {}
        self.opponent_rewards = []  

        def choose_q_action()...

def play(env, player_o, player_x, episodes=1):
    rewards_per_episode = np.zeros(episodes)
    for episode in range(episodes):
        env.reset()
        # Let random player play first!
        x_action_index = player_x.choose_action(env)
        reward, game_over = env.act(x_action_index)
        while not game_over:
            o_action_index = player_o.choose_action(env)
            reward, game_over = env.act(o_action_index)
            if not game_over:
                x_action_index = player_x.choose_action(env)
                reward, game_over = env.act(x_action_index)
        rewards_per_episode[episode] = reward
    return rewards_per_episode


env = connect.Connect(verbose=False)

m = 10
n = 200
k = 30

# Test a random agent at episodes 0, n, 2n, ...., kn for m games.
np.random.seed(3)
rewards = np.zeros(k)

# player_o is the agent to test
# player_x should always be a random agent
player_o = QLearningAgent()
player_x = RandomAgent()

for kx in range(k):
    rewards_per_episode = play(env,
                               player_o=player_o,
                               player_x=player_x,
                               episodes=m)
    mean_reward = np.mean(rewards_per_episode)
    rewards[kx] = mean_reward

line1, = plt.plot(rewards)
plt.legend([line1], ["Random Agent"])
plt.show()

QLearningAgent__init__方法需要一個您沒有傳遞的environment參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM