擅长:python、mysql、java
<p>您没有初始化对象,只是创建了名为<code>Bonny</code>的<code>Dog</code>类的副本。通过打印它们,您可以看到<code>Dog()</code>和<code>Dog</code>之间的区别</p>
<pre class="lang-py prettyprint-override"><code>class Animal():
pass
print(Animal) # the result is <class '__main__.Animal'>
print(Animal()) # the result is <__main__.Animal object at 0x037D6A50>
</code></pre>
<p>第一行是指一个名为<code>Animal</code>的类,但第二行是类<code>Animal</code>的对象。因此,如果要创建类的对象,必须初始化该类(与第二种形式相同)。
您的正确代码如下所示:</p>
<pre class="lang-py prettyprint-override"><code>class Animal:
def talk(self, something):
print(something)
class Dog(Animal):
def talk(self):
super().talk("woof woof")
bonny = Dog()
bonny.talk()
</code></pre>
<p>根据<a href="https://www.python.org/dev/peps/pep-0008/" rel="nofollow noreferrer">Python Style Guide</a>的规定,用小写字母命名对象是标准的</p>