簡體   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