TypeError:'NoneType'对象不能从初学者迭代

时间:2018-05-18 19:38:22

标签: python-3.6

我有一段代码在下一行给出了错误

重置购物车功能如下所示。 有人可以告诉我如何解决这个问题吗?

[pre_s, s, pre_a, a, x, x_dot, theta, theta_dot] = reset_cart(beta)    # reset the cart pole to initial state
  

类型错误:   'NoneType'对象不可迭代

[pre_s, s, pre_a, a, x, x_dot, theta, theta_dot] = reset_cart(beta)
def reset_cart(beta):
pre_s=1
s=1
pre_a=-1  
a=-1   


x = 0
x_dot = 0
theta = 0
theta_dot = 0.01

1 个答案:

答案 0 :(得分:0)

您错过了reset_cart功能的关键部分:返回。

现在,当您的reset_cart函数完成时,它刚设置的所有变量都会消失,因为它们从未在函数外部分配值。从函数中获取值到使用它们的任何其他位置的主要方法是使用return语句返回它们。

在这种情况下,您尝试将这8个元素设置为函数中给出的值,因此返回一个包含这8个元素的列表:

def reset_cart(beta):

    pre_s=1
    s=1
    pre_a=-1  #the agent is taking no action
    a=-1

    x = 0
    x_dot = 0
    theta = 0
    theta_dot = 0.01
    return [pre_s, s, pre_a, a, x, x_dot, theta, theta_dot]

有关返回变量和变量范围的更多信息,请参阅:

What is the purpose of the Return statement?