Добавить в корзинуПозвонить
Найти в Дзене
Просто Python

Объектно-ориентированное программирование (ООП) в Python

ООП — это парадигма программирования, основанная на использовании объектов и классов. Она помогает моделировать реальные сущности и организовывать код более структурировано. Класс — это шаблон, описывающий свойства и поведение объекта.
Объект — конкретный экземпляр класса. class Person:
def __init__(self, name, age):
self.name = name # свойство (атрибут)
self.age = age
def greet(self):
print(f"Привет, меня зовут {self.name} и мне {self.age} лет.") p1 = Person("Алиса", 30)
p1.greet() # Привет, меня зовут Алиса и мне 30 лет. Классы могут наследовать свойства и методы других классов. class Student(Person):
def __init__(self, name, age, university):
super().__init__(name, age) # вызов конструктора родителя
self.university = university
def greet(self):
super().greet()
print(f"Я учусь в {self.university}.") s1 = Student("Боб", 20, "МГУ")
s1.greet()
# Выведет:
# Привет, меня зовут Боб и мне 20 лет.
# Я учусь в МГУ. А
Оглавление

ООП — это парадигма программирования, основанная на использовании объектов и классов. Она помогает моделировать реальные сущности и организовывать код более структурировано.

Классы и объекты

Класс — это шаблон, описывающий свойства и поведение объекта.
Объект — конкретный экземпляр класса.

Создание класса

class Person:
def __init__(self, name, age):
self.name = name # свойство (атрибут)
self.age = age

def greet(self):
print(f"Привет, меня зовут {self.name} и мне {self.age} лет.")

  • Метод __init__ — конструктор, вызывается при создании объекта.
  • self — ссылка на текущий объект.

Создание объекта и вызов методов

p1 = Person("Алиса", 30)
p1.greet() # Привет, меня зовут Алиса и мне 30 лет.

Атрибуты и методы

  • Атрибуты — переменные внутри объекта (self.name, self.age).
  • Методы — функции внутри класса (greet).

Наследование

Классы могут наследовать свойства и методы других классов.

class Student(Person):
def __init__(self, name, age, university):
super().__init__(name, age) # вызов конструктора родителя
self.university = university

def greet(self):
super().greet()
print(f"Я учусь в {self.university}.")

Использование наследника

s1 = Student("Боб", 20, "МГУ")
s1.greet()
# Выведет:
# Привет, меня зовут Боб и мне 20 лет.
# Я учусь в МГУ.

Инкапсуляция

Атрибуты можно сделать «приватными», добавив двойное подчёркивание:

class Person:
def __init__(self, name):
self.__name = name # приватный атрибут

def get_name(self):
return self.__name

Итог

ООП помогает организовать код, делая его более понятным и поддерживаемым. В Python классы просты в использовании и мощны.