<p>我们定义Vehicle超类如下,Bicycle子类如下</p>
<pre><code>class Vehicle:
def __init__(self, colour, wheels, size):
self.colour = colour
self.wheels = wheels
self.size = size
class Cycle(Vehicle):
def __init__(self, colour, wheels, size):
super().__init__(colour, wheels, 'small')
</code></pre>
<p>在这里您可以看到Cycle子类只接受<code>colors</code>和<code>wheels</code>并将其传递给超类,并且具有硬编码的<code>size=small</code>属性。子类构造函数调用超类的构造函数</p>
<p>要检查发生了什么,我们可以尝试以下操作:</p>
<pre><code>veh = Cycle('Black', 2)
print(veh.colour)
print(veh.wheels)
print(veh.size)
#Black
#2
#small
</code></pre>
<p><strong>更新
基于OP不想拥有size属性的注释,您可以为超类中的size属性指定一个默认值,例如<code>size=None</code>,并且在实例化子类时不需要传递它。你知道吗</p>
<pre><code>class Vehicle:
def __init__(self, colour, wheels, size=None):
self.colour = colour
self.wheels = wheels
self.size = size
class Cycle(Vehicle):
def __init__(self, colour, wheels):
super().__init__(colour, wheels)
</code></pre>
<p>你可以这样称呼它</p>
<pre><code>veh = Cycle('Black', 2)
print(veh.colour)
print(veh.wheels)
print(veh.size)
#Black
#2
#None
</code></pre>
<p>您可以看到<code>size</code>的值是<code>None</code>,这是我们选择的默认值,因为我们没有显式地传递<code>size</code>,如果我们传递它,我们会得到<code>size</code>属性的值</p>