繁体   English   中英

使用super的构造函数的子类构造函数

[英]subclass constructor using super's constructor

最初定义了这个

class Mammal(object):
    def __init__(self, name):
        self.name = name

    def get_name(self):
        return self.name

    def say(self):
        return("What does the " + self.name + " says")

但现在我们要创建Mammals的子类,其构造函数将使用正确的名称调用Mammal的构造函数。

  class Dog(Mammal):
        def __init__(self):
            Dog.self

这是我的代码。 它说type object 'Dog' has no attribute 'self'什么问题?

什么时候print(Dog().get_name())我应该得到狗。

如果你使用的是Python 2.x,你应该写

super(Dog, self).__init__('name')

或者,对于Python 3:

super().__init__('name')

代替

Dog.self

有关详细信息,请参阅使用__init __()方法了解Python super()

如果你想让Dog().get_name()返回'Dog',你应该打电话

super(Dog, self).__init__('Dog')

你应该这样写:

class Dog(Mammal):
    def __init__(self):
        super().__init__('dog name')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM