-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path9.oop.py
More file actions
77 lines (50 loc) · 2.05 KB
/
Copy path9.oop.py
File metadata and controls
77 lines (50 loc) · 2.05 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# *** Основы объектно-ориентированного программирования ***
# Объект принадлежит определенному классу (типу)
# Объекты обладают свойствами и методами (функции)
# Класс - это некий "чертеж" ("план") объектов.
# Объект опредлеленного класса называется экземпляром класса.
# Создание (определение) класса
# Названия классов принято писать с заглавной буквы
class Greeting:
def __init__(self):
# метод-конструктор
# здесь создаются свойства (атрибут, поле)
self.age = None
def wassup(self):
# метод
print(f"Wassup, howzitgoin?! My age: {self.age}")
# создание экземпляров (объектов) класса Greeting
great = Greeting()
# присвоение значения свойству
great.age = 5
# чтение значения из свойства
val = great.age
# print(val)
# вызов метода
# great.wassup()
# ещё один экземпляр класса Greeting
good = Greeting()
good.age = 10
# good.wassup()
# *** Принцип Наследования ***
# Классы могут наследовать свойства и методы у других классов
# создание родительского (предкового) класса
class Farewell:
def __init__(self, n_words):
self.num_words = n_words
def express(self):
print(f"I express. Num words: {self.num_words}")
# создание дочерних классов
class Farewell_1(Farewell):
pass
class Farewell_2(Farewell):
def info(self):
print("Farewell_2 is here")
Cya = Farewell_1(4)
Cya.express()
Bye = Farewell_2(5)
Bye.express()
Bye.info()
# самостоятельно:
# - полиморфизм
# - инкапсуляция