我有一个小的Python OOP程序,其中2类Flan和Outil从超类Part继承。
我的问题是,当我调用Flan
时,一切正常,但是,当我调用Outil
时,程序无提示地失败。Outil
实例已创建,但缺少与Part
不共享的所有属性。Outil
实例既不会添加到Outil.list_instance_outils
,也不会添加到Part.list_instances
。
class Outil(Part):
list_instance_outils = []
def __init___(self, name, part_type, nodes, elems):
Part.__init__(self, name, part_type, nodes, elems)
self.vect_norm = vectnorm(self.nodes[self.elems[0,1:]-1, 1:])
self.elset = Elset(self)
self.nset = Nset(self, refpoint=True, generate=False)
self.SPOS = Ab_surface(self, self.elset)
self.SNEG = Ab_surface(self, self.elset, type_surf='SNEG')
Outil.list_instance_outils.append(self)
Part.list_instances.append(self)
class Flan(Part):
list_instances_flans = []
def __init__(self, name, part_type, nodes, elems):
Part.__init__(self, name, part_type, nodes, elems)
self.vect_norm = vectnorm(self.nodes[self.elems[0,1:4]-1, 1:])
self.elset = Elset(self)
self.nset = Nset(self)
self.SPOS = Ab_surface(self, self.elset)
self.SNEG = Ab_surface(self, self.elset, type_surf='SNEG')
Flan.list_instances_flans.append(self)
Part.list_instances.append(self)
这两个类都继承自Part:
class Part():
list_instances = []
def __init__(self, name, part_type, nodes, elems):
self.name = name
self.name_instance = self.name + '-1'
self.part_type = part_type
self.elems = elems
self.nodes = nodes
offset = np.min(self.elems[:, 1:])-1
self.nodes[:, 0] -= offset
self.elems[:, 1:] -= offset
我无法强调自己没有任何错误消息。
我在这里做错了什么?
最佳答案
您编写的__init__
带有三个下划线而不是Outil
中的两个。
因此,它不会被调用-而是调用Part.__init__
。这就是创建类的原因,但它缺少Part
中的属性。