【问题标题】: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() 而不是显式调用超类方法。
  • 上帝..应该睡一觉。还是谢谢

标签: python class inheritance metaclass


【解决方案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 教程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多