包含更多方法的Python子类

包含更多方法的Python子类,python,inheritance,Python,Inheritance,我有一个关于如何处理继承问题的快速问题 假设我们有一个车辆对象 class vehicle(object): __init__(registration): registration = self.registration get_details(): return "This is a vehicle" 然后是从车辆继承的卡车 class truck(vehicle): get_details(): re

我有一个关于如何处理继承问题的快速问题

假设我们有一个车辆对象

class vehicle(object):

    __init__(registration):
         registration = self.registration

    get_details():
         return "This is a vehicle"
然后是从车辆继承的卡车

class truck(vehicle):

      get_details():
         return "This is a truck"
我们有很多类,它们都具有相同的方法和属性,例如bus、car、train。然而,我们也有一架飞机继承了车辆,但只有飞机有一种新方法,叫做
required\u takeoff\u distance()


只在飞机类中使用它可以吗?还是应该将它添加到车辆类中,默认值为
raise NotImplementedError()

子类定义比父类更多的方法完全可以。事实上,这是创建child类的首要原因


除非您试图定义接口,否则不要将带有
raisenotimplementederror
的方法添加到父类中。Python中几乎不需要这样做,因此,如果您不确定这意味着什么,您可以放心地忘记它。

最好只在飞机类中使用所需的起飞距离,因为当您指向它时,此方法仅对飞机有意义。将该方法添加到基类将打破坚实的原则。我同意“如果您不确定它的含义,您可以安全地忘记它”,但我不同意“Python中几乎从不需要它”。这完全取决于您使用Python的目的。我最近花了很多时间来构建一些框架,我经常使用它。