我有一个名为“ 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()出了点问题,但我找不到它
答案 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)
是实际程序中的变量,应作为类的参数。