我的子类无法从Python的父类中正确继承

时间:2019-07-26 21:29:04

标签: python class inheritance

我有一个名为“ Product”的类,该类继承自名为“ Command”的基类。每次我通过从基类“ L_R”调用属性来执行如下所示的function1时,都会显示“ NameError:未定义名称'L_R'”

class Command:
   def__init__(self ,L_R,L_A,L_M):
    self.L_R=L_R
    self.L_M=L_M
    self.L_A=L_A
    ######
class Produit(Command): 
     def __init__(self, reference,position):
        super().__init__(self,L_R,L_A,L_M)
        self.reference=reference
        self.position=position

     def function1(self)
        ###
        if (self.L_R==condition):
            #some code

我认为super()出了点问题,但我找不到它

1 个答案:

答案 0 :(得分:1)

是的,根据上面的代码,您的超级有点不正确。我不会尝试解释您的class,而只是告诉您如何修复超级继承以继承您的L_R,L_A,L_M参数。如果您希望Produit每次实例化时都专门继承它们,则需要将它们传递给__init__的{​​{1}}:

super()

如果您希望class Command: def__init__(self ,L_R,L_A,L_M): self.L_R=L_R self.L_M=L_M self.L_A=L_A ###### class Produit(Command): def __init__(self, L_R, L_A, L_M, reference, position): super().__init__(L_R,L_A,L_M) self.reference=reference self.position=position def function1(self) ### if (self.L_R==condition): #some code 继承从命令创建的内容,则可以执行以下操作:

Produit

my_cmd_obj = Command(L_R, L_A, L_M) my_prd_obj = Produit(my_cmd_obj, reference, position) 是实际程序中的变量,应作为类的参数。