我有一个相对简单的类,它只是根据状态改变变量的值。在
class SetStates:
def LM_State1():
global p_LM1, p_LM2, p_LM3, p_RR1, p_RR2, p_RR3, p_RF1, p_RF2, p_RF3
p_LM1 = Ra_L*P_j1_s1
p_LM2 = P_j2_s1
p_LM3 = P_j3_s1
p_RR1 = Ra_R*(-1)*P_j1_s1
p_RR2 = (-1)*P_j2_s1
p_RR3 = (-1)*P_j3_s1
p_RF1 = Ra_R*(-1)*P_j1_s1
p_RF2 = (-1)*P_j2_s1
p_RF3 = (-1)*P_j3_s1
最初我在类中调用函数,如下所示:
^{pr2}$在意识到我需要初始化它现在看起来像这样。在
s=SetStates()
if LM_state == 1:
s.LM_State1()
但我现在收到一个错误,指定它已被赋予1个参数,但应为0。我几乎可以肯定我错过了一些非常琐碎的事情。如果有人能把这个弄清楚那就太好了,谢谢
类方法(也就是说:在类定义中定义的任何} ,但我们不要搅浑这件事)。由于
def
块)会自动作为它们的第一个参数传递给实例调用方(除非它被定义为^{LM_State1()
的函数定义不包括任何参数,Python抱怨您给了它一个参数(s
),它不知道该如何处理。在正如@BrenBarn在评论中提到的那样,如果你的类只是修改全局状态,那么从设计的角度来看就没有什么意义了,但是无论如何,这就是错误的原因。如果您真的需要这个(提示:您不需要),您应该考虑将它包装在一个模块中,导入该模块,并在该模块的顶层定义所有的
set_state
函数。在在
^{pr2}$相关问题 更多 >
编程相关推荐