继承

class Rocket:
def __init__(self, name, distance):
self.name = name
self.distance = distance def launch(self):
return "%s has reached %s" % (self.name, self.distance) class MarsRover(Rocket): # inheriting from the base class
def __init__(self, name, distance, maker):
Rocket.__init__(self, name, distance)
self.maker = maker def get_maker(self):
return "%s Launched by %s" % (self.name, self.maker) if __name__ == "__main__":
x = Rocket("simple rocket", "till stratosphere")
y = MarsRover("mars_rover", "till Mars", "ISRO")
print(x.launch())
print(y.launch())
print(y.get_maker())
simple rocket has reached till stratosphere
mars_rover has reached till Mars
mars_rover Launched by ISRO

聚合

class MarsRoverComp():
def __init__(self, name, distance, maker):
self.rocket = Rocket(name, distance) # instantiating the base
self.maker = maker def launch(self):
self.rocket.launch() def get_maker(self):
return "%s Launched by %s" % (self.rocket.name, self.maker) if __name__ == "__main__":
z = MarsRover("mars_rover2", "till Mars", "ISRO")
print(z.launch())
print(z.get_maker())
mars_rover_comp has reached till Mars
mars_rover_comp Launched by ISRO
05-14 14:52
查看更多