55 lines
1.9 KiB
Markdown
55 lines
1.9 KiB
Markdown
**ООП** – парадигма программирования в которой все объекты представляются в виде экземпляров классов. Каждый класс обладает своими атрибутами и методами.
|
|
**Атрибуты** - данные, характеризующие класс.
|
|
**Методы** - функции, которые экземпляр класса может выполнять. С помощью методов можно влиять на атрибуты классов.
|
|
|
|
```python
|
|
class Human:
|
|
name = 'human'
|
|
age = 0
|
|
sex = "male"
|
|
|
|
def __init__(self, name, age, sex):
|
|
self.name = name
|
|
self.age = age
|
|
self.sex = sex
|
|
|
|
def info(self):
|
|
print("Name:", self.name)
|
|
print("Age:", self.age)
|
|
print("Sex:", self.sex)
|
|
def Speak(self):
|
|
print(f"Hello, i'm {self.name}")
|
|
|
|
kirill = Human(name="kirill", age=17, sex="male")
|
|
katya = Human(name='Kate', age=18, sex="female")
|
|
```
|
|
|
|
|
|
## Наследование в ООП
|
|
|
|
**Наследование** в ООП это концепция, позволяющая классу, наследовать атрибуты и методы от другого класса.
|
|
|
|
|
|
![[th-1161040066.jpg]]
|
|
```python
|
|
class Human():
|
|
def __init__(self):
|
|
self.health = 100;
|
|
self.strenth = 100;
|
|
self.brain = 100;
|
|
self.money = 0
|
|
|
|
class Student(Human):
|
|
Human.health = 70
|
|
Human.money = 0
|
|
Human.brain = -10
|
|
Human.strenth = 70
|
|
|
|
student1 = Student()
|
|
print(student1.brain)
|
|
```
|
|
|
|
### Перегрузка операторов
|
|
|
|
**Перегрузка операторов** - возможность определять собственное поведение для стандартных операторов языка python при работе с объектами пользовательских классов.
|