-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodule6_2.py
More file actions
59 lines (46 loc) · 2.26 KB
/
Copy pathmodule6_2.py
File metadata and controls
59 lines (46 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class Vehicle:
__COLOR_VARIANTS = { 'red', 'green', 'blue', 'yellow', 'black', 'white' }
def __init__(self, owner, model, color, engine_power):
self.owner = str(owner)
self.__model = str(model)
self.__engine_power = int(engine_power)
self.set_color(color)
def get_owner(self):
return f'Владелец: {self.owner}'
# Возвращает строку: "Модель: <название модели транспорта>"
def get_model(self):
return f'Модель: {self.__model}'
# Возвращает строку: "Мощность двигателя: <мощность>"
def get_horsepower(self):
return f'Мощность двигателя: {self.__engine_power}'
# Возвращает строку: "Цвет: <цвет транспорта>"
def get_color(self):
return f'Цвет: {self.__color}'
# Распечатывает результаты методов (в том же порядке):
# get_model()\n
# get_horsepower()\n
# get_color()\n
# get_owner()\n
def print_info(self):
print(self.get_model(), self.get_horsepower(), self.get_color(), self.get_owner(), sep='\n')
# Принимает аргумент new_color(str),
# меняет цвет __color на new_color, если он есть в списке __COLOR_VARIANTS,
# в противном случае выводит на экран надпись: "Нельзя сменить цвет на <новый цвет>".
def set_color(self, new_color):
new_color_str = str(new_color).lower()
if new_color_str in self.__COLOR_VARIANTS:
self.__color = new_color_str
else:
print(f'Нельзя сменить цвет на {new_color}')
class Sedan(Vehicle):
__PASSENGERS_LIMIT = 5
# Текущие цвета __COLOR_VARIANTS = {'red', 'green', 'blue', 'yellow', 'black', 'white'}
vehicle1 = Sedan('Fedos', 'Toyota Mark II', 'blue', 500)
# Изначальные свойства
vehicle1.print_info()
# Меняем свойства (в т.ч. вызывая методы)
vehicle1.set_color('Pink')
vehicle1.set_color('BLACK')
vehicle1.owner = 'Vasyok'
# Проверяем что поменялось
vehicle1.print_info()