Основы ООП
Объектно-ориентированное программирование (ООП) — это парадигма программирования, где различные компоненты компьютерной программы моделируются на основе реальных объектов. Объект — это что-либо, у чего есть какие-либо характеристики и то, что может выполнить какую-либо функцию. При этом сама программа создается как некоторая совокупность объектов, которые взаимодействую друг с другом и с внешним миром. Каждый объект является экземпляром некоторого класса.
Создание классов
Для создания класса необходимо прописать ключевое слово class и далее название для класса. Общепринято начинать названия классов с буквы в верхнем регистре, но если этого не сделать, то ошибки не будет.
В любом классе можно создавать поля (переменные), методы (функции), а также конструкторы.
Создав новый класс и поместив туда какую-либо информацию мы можем создавать на основе него новые объекты. Объекты будут иметь доступ ко всем характеристикам класса.
Пример простого класса приведен ниже:
class Book:
pass # Класс может ничего не возвращать
Класс состоит из объявления (инструкция class), имени класса (нашем случае это имя Book) и тела класса, которое содержит атрибуты и методы (в нашем минимальном классе есть только одна инструкция pass).
На основе такого класса мы можем создать множество объектов. Каждый объект в данном случае будет представлять из себя конкретную книжку. Для каждого объекта мы можем указать уникальные данные.
Чтобы создать объект нам потребуется следующий код:
book_new = Book() # Создание объекта
book_second = Book() # Создание 2 объекта
Рассмотрим более сложный пример
class Person:
name = "Ivan"
age = 10
def set(self, name, age):
self.name = name
self.age = age
Переменные name и age в классе называться атрибуты класса. Функцияset() методом класса.
Мы можем создать несколько объектов, и продемонстрировать как это все работает
vlad = Person()
vlad.set("Влад", 25)
print (vlad.name + " " + str(vlad.age))
ivan = Person()
ivan.set("Иван", 56)
print (ivan.age)
Конструктор класса — метод init
Большинство классов имеют специальный метод, который автоматически запускается при создании объекта.
Такой метод называется конструктором класса и в языке программирования Python носит имя init. (В начале и конце по два знака подчеркивания.)
Первым параметром, как и у любого другого метода, у__init__ является self, на место которого подставляется объект в момент его создания. Второй и последующие (если есть) параметры заменяются аргументами, переданными в конструктор при вызове класса. Ранее мы рассмотрели пример без конструктора, теперь перепишем наш класс с использованием конструктора.
class Person:
name = "Ivan"
age = 10
def __init__(self, name, age):
self.name = name
self.age = age
И примеры создания экземпляра класса с использованием конструктора.
vlad = Person ("Влад", 25)
print (vlad.name + " " + str(vlad.age))
Что такое self?
До этого момента вы уже успели познакомиться с ключевым словом self. self – это ссылка на текущий экземпляр класса. В таких языках как Java, C# аналогом является ключевое слово this. Через self вы получаете доступ к атрибутам и методам класса внутри него самого:
class Person:
name = "Ivan"
age = 10
def __init__(self, name, age):
self.name = name
self.age = age
def print_data(self)
print (self.name + " " + str(self.age))
Пример использования
vlad = Person ("Влад", 25)
vlad.print_data()