擅长:python、mysql、java
<p>以下是正确的代码:</p>
<pre><code>class Bird():
def fly(self):
print("all birds fly.")
class Owl(Bird):
def hoot(self):
print("owls hoot.")
my_owl = Owl()
my_owl.fly()
my_owl.hoot()
print(isinstance(my_owl, Owl)) # >> True
</code></pre>
<p>解释如下:</p>
<ol>
<li>试着尊重<a href="https://www.python.org/dev/peps/pep-0008/" rel="nofollow noreferrer">python naming conventions</a>,在类名中使用camel大小写</李>
<li>方法应该声明<code>self</code>为第一个参数,除非它是<a href="https://realpython.com/instance-class-and-static-methods-demystified/" rel="nofollow noreferrer">static method</a>(但在本例中,应该声明为第一个参数)</李>
<li><code>isinstance</code>应将对象作为第一个参数,将类(或元组或类)作为第二个参数。您的第二个<code>isinstance</code>调用将返回<code>TypeError</code></li>
<li>实例化对象时,应在类名后添加括号:<code>my_owl = Owl()</code>。如果不这样做,<code>my_owl</code>将不会引用Owl对象,而是引用Owl的类定义</李>
</ol>