Классы – введение

Как и любой язык, поддерживающий методологию объектно-ориентированного программирования, Python работает с классами. Классы могут быть полезны по нескольким причинам. Во-первых, они помогают вам повторно использовать код вместо того, чтобы дублировать его в разных местах во всей вашей программе. Классы спасут вашу жизнь, когда вы поймете, что вы хотите изменить функцию. Вы поменяете его только в одном месте вместо десяти. Другим важным преимуществом классов является то, что они позволяют создавать более гибкие функции. Предлагаем закатать рукава и попробовать разобраться, что они из себя представляют.

#ClassOne.py
class Calculator(object):
#define class to simulate a simple calculator
def __init__ (self):
#start with zero
self.current = 0
def add(self, amount):
#add number to current
self.current += amount
def getCurrent(self):
return self.current

Откровенно говоря, объектно-ориентированное программирование довольно сложно для восприятия новичкам, поэтому мы постараемся не бросать в вас абстрактные понятия, поскольку они лишь больше вас запутают и заставят ненавидеть ООП. Итак, класс похоже на функцию. Мы обозначим его, используя ключевое слово class, а за ним напишем то, как мы его хотим назвать. В нашем случае, мы назовем его Calculator. Затем мы обозначаем объект (object).

Следующий шаг, def __init__ (self):. Объекты состоят из классов. Например, если бы у нас был class под названием торт, то мы могли бы сделать object – торт. Однако, всякий раз, создавая новый торт, он будет отличаться от предыдущего. Может он конечно визуально и на вкус будет напоминать нам предыдущий, но это не значит, что он будет ему идентичен. Итак, в нашем классе у нас есть инстанции по которым мы знаем, что это два разных торта. Зачем нам это нужно, спросите вы? Предположим, у нас два одинаковых торта. От одного из них вы откусили большой кусок. Теперь вы определенно захотите узнать, какой из них торт покусанный, а какой нет, не правда ли? Таким образом, def __init__ (self): нам позволяет создать инстанции данного класса.

И, наконец, мы спускаемся в сердце инициализации функции. Здесь мы используем self.current для того, чтобы создать переменную инстанции, равную нулю. Ух! Мы справились с самой сложной частью.

Дальше мы добавляем функцию. Self как и в прошлый раз для того, чтобы понять к какой инстанции относится, а amount обозначает какое-то число, которое относится к данной переменной.

Дальше мы переходим к тому, чтобы “получить” переменные из класса. Для того, чтобы получить значение self.current переменной, мы передаем его в функцию, а затем даем название функции, чтобы не перепутать наши инстанции. Мы установили функцию и даем последнюю команду Питону return self.current.

Поделитесь с друзьями:

Оставьте комментарий