Skip to main content
 首页 » 编程设计

Python类继承构造函数失败: What am I doing wrong

2025年05月04日1498°冷暖


我有一个小型 Python OOP 程序,其中 2 个类 Flan 和 Outil 继承自父类(super class) 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 

我怎么强调我都没有错误消息。 我在这里做错了什么?

请您参考如下方法:

您在 Outil 中用三个 尾部下划线而不是两个编写了 __init__。

因此,它不会被调用——Part.__init__ 被调用。这就是创建该类的原因,但它缺少 Part 中的属性。