一个vehicle类,vehicle_identification_number是vehicle类的私有属性用于保存vin的私有属性,number_of_wheels是vehicle类的公共属性,number_of_doors用于保存门数,set_vin()表示vin属性的setter方法且接受一个vin字符串并将其分配给私有属性vehicle_identification_number,get_vin()表示vin属性的getter方法,创建一个名为vin的属性,它使用getter和setter方法有一个Engine类type是他的私有属性,get_info()是个公共方法返回一个字符串和Engine的类型,set_type()这个公共方法表示类型属性的setter方法,vehicle和Engine类是聚合的关系,现添加一个方法get_engine-info()来修改vehicle类,以便可以通过vehicle类访问Engine类的get_info()方法
时间: 2023-05-19 12:06:24 浏览: 53
可以这样修改vehicle类:
```python
class Engine:
def __init__(self, engine_type):
self.__type = engine_type
def get_info(self):
return "Engine type: {}".format(self.__type)
def set_type(self, engine_type):
self.__type = engine_type
class Vehicle:
def __init__(self, num_wheels, num_doors):
self.__vin = ""
self.number_of_wheels = num_wheels
self.number_of_doors = num_doors
self.__engine = Engine("unknown")
def set_vin(self, vin):
self.__vin = vin
def get_vin(self):
return self.__vin
def get_engine_info(self):
return self.__engine.get_info()
def set_engine_type(self, engine_type):
self.__engine.set_type(engine_type)
```
这样就可以通过调用`get_engine_info()`方法来获取Engine类的信息了。