我想实现一个类和2个子类:
class cars(object):
def chassis(self):
...
class automobile(cars):
def chassisAutomobile(self):
...
class truck(cars):
def chassisTruck(self):
...
方法“chassisAutomobile”和“chassisTruck”应该具有与“chassis”+附加(对于子类特殊)功能相同的特征。 我想这很简单,如果它们具有相同的名称 - 但在我的应用程序中它会有所不同,它们有不同的名称(chassis-chassisAutomobile,chassisTruck)。
你将如何在Python中实现这一点? 非常感谢你的帮助!
答案 0 :(得分:3)
你应该为所有人使用相同的名称chassis()
,因为它不像卡车那样,汽车的底盘和卡车的底盘:
class cars(object):
def chassis(self):
pass # Do cars stuff
class automobile(cars):
def chassis(self):
super().chassis()
# Do automobile stuff
class truck(cars):
def chassis(self):
super().chassis()
# Do truck stuff
但是,如果您确定需要单独的名称(因此truck
可以同时使用chassis()
和chassisTruck()
),您只需拨打self.chassis()
内{ {1}}和chassisTruck
。
答案 1 :(得分:2)
自扩展.chassis()
类以来,您将可以访问两个子类中的cars
方法。您可以编写特定于类的代码,然后在结尾(或开头)简单地调用.chassis()
。例如:
class cars(object):
def chassis(self):
...common code here...
class automobile(cars):
def chassisAutomobile(self):
...do things...
self.chassis()
class truck(cars):
def chassisTruck(self):
...do things...
self.chassis()
作为无关的旁注;根据{{3}}开始使用大写字母开始课程名称是一个好主意。