ООП в Python

В языке Python класс — это тип, описывающий набор свойств, которые характеризуют объект. Каждый класс имеет структуру данных, которая может содержать как функции, так и переменные, характеризующие объект. Членами класса могут быть функции, называемые методами, а также переменные (объявленные внутри структуры класса), называемые атрибутами.

К членам класса можно обращаться в программе с помощью точечной записи, поставив соответствующий суффикс после имени класса, применив следующий синтаксис: имя-класса.имя-метода() или имя-класса.имяатрибута.

Создание класса начинается с ключевого слова class, после которого следует указываемое программистом имя класса . (Имя класса должно начинаться с буквы верхнего регистра, то есть с большой буквы).

Сейчас всё будет понятно!

Создадим класс Car.

class Car:    #создали класс
    color = 'неизвестен' #атрибут класса
    name = 'неизвестно'  #атрибут класса
   
    def start(self):  # метод класса
        print('Заведен двигатель')

Как мы видим атрибут класса color и name — обычные переменные которые хранят строку! Значит у всех объектов этого класса будет атрибут color и name.

Также, мы видим метод класса start() — она же простая функция которая принимает self, что такое self — чуть позже. Итого у всех объектов этого класса будет метод start!

Итак, мы создали свой первый класс, он же чертеж, по которому в дальнейшем мы будем создавать экземпляры этого класса, они же — объекты.

Создаем экземпляр класса!

Экземпляр класса создается очень просто — имяобъекта = имякласса()

supercar1 = Car()

Теперь попробуем вызвать метод start(), относительно нашего supercar1.

supercar1.start()

Что у нас получилось:

class Car:
    color = 'неизвестен'
    name = 'неизвестно'
    def start(self):
        print('Заведен двигатель')

supercar1 = Car()

supercar1.start()

Важно!

self – общепринятое имя для ссылки на объект, в контексте которого вызывается метод. Этот параметр обязателен и отличает метод класса от обычной функции.

Передача параметров в методы класса

Внимание! Разберитесь в следующем примере.

class Car:
    color = 'неизвестен'
    name = 'неизвестно'
    def start(self):
        print('Заведен двигатель')
    def recolor(self,color): # передаем объект и цвет
        self.color = color # задаем цвет
        print('Ваш авто был перекрашен в:' + self.color) #выводим заданный цвет

supercar1 = Car()
supercar1.start()
print('в какой цвет вы хотите перекрасить авто?')
color= input() #пользователь задает цвет
supercar1.recolor(color) #передаем в метод сам цвет

Здесь мы создали метод recolor() и сказали что сюда поступит сам объект(self) и атрибут(color). После, говорим, что атрибут который отвечает за цвет будет в инициализирован в значение color, которое пришло к нам при вызове supercar1.recolor(color).