为啥我的类不继承父类?

Posted

技术标签:

【中文标题】为啥我的类不继承父类?【英文标题】:Why does my class not inherit from the parent class?为什么我的类不继承父类? 【发布时间】:2015-09-02 11:34:52 【问题描述】:

我正在创建一个子类,但我很难让它从父类继承:

def ParentClass(object):

    def __init__(self,num):
        self.num = num
        self.get_soup()

    def get_soup(self):
        self.soup = 'soup'
        return self.soup

def SubClass(Advert):

    def __init__(self,num):
        ParentClass.__init__(self,num)

    def test(self):
        print 'it works'
        print self.num

if __name__== "__main__":

    num = 1118868465    
    ad = SubClass(num)
    ad.test()

我应该看看元类吗?

【问题讨论】:

你有函数而不是类。 你也继承了Advert而不是ParentClass 请立即阅读例如docs.python.org/2/tutorial/classes.html - 你几乎做错了所有事情。 1. 您没有使用类(类是用class 声明的,而不是用def 声明的)。 2. 你没有告诉 Python 你想从ParentClass 继承(你需要像class SubClass(ParentClass) 这样的东西)。 3. 你应该更喜欢super() 而不是显式调用超类方法。 上帝..应该睡一觉。还是谢谢 【参考方案1】:

您的代码中有函数而不是类,父类也称为ParentClass 不是广告:

class  ParentClass(object): # class not def
    def __init__(self,num):
        self.num = num
        self.get_soup()

    def get_soup(self):
        self.soup = 'soup'
        return self.soup

class SubClass(ParentClass): # inherit from ParentClass
    def __init__(self, num):
        super(SubClass, self).__init__(num)
    def test(self):
        print 'it works'
        print self.num

您可能想阅读this 教程

【讨论】:

以上是关于为啥我的类不继承父类?的主要内容,如果未能解决你的问题,请参考以下文章

为啥java类不从实现的接口继承注解?

为啥具有私有构造函数的类不阻止从此类继承?如何控制哪些类可以从某个基类继承?

为啥我的子类没有继承父类的所有方法?

为啥我的多态类型是我的模型继承的类?

C++实现一个不能被继承的类

Scala的类继承