Классы и объекты Python [с примерами]

Опубликовано: 2021-06-25

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

Это неудивительно, поскольку специалисты по данным во всем мире клянутся возможностями языка программирования Python. Если вы планируете начать карьеру в области науки о данных и хотите освоить Python, знание классов и объектов должно быть вашим главным приоритетом.

В этой статье мы поможем вам понять все нюансы объектов и классов в Python, а также то, как вы можете начать создавать свои собственные классы и работать с ними.

Оглавление

Классы в Python

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

Чтобы понять необходимость создания класса, рассмотрим следующий простой пример. Предположим, вы хотите отслеживать кошек в вашем районе с различными характеристиками, такими как возраст, порода, окрас, вес и т. д. Вы можете использовать список и отслеживать элементы в режиме 1:1, т. е. возраст или возраст до веса, используя список. Что, если предполагается, что должно быть 100 разных кошек? Что делать, если нужно добавить больше свойств? В таком сценарии использование списков имеет тенденцию быть неорганизованным и беспорядочным.

Вот где классы приходят!

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

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

Некоторые моменты в классе Python:

  • Классы создаются с помощью ключевого слова class.
  • Атрибуты — это переменные, относящиеся к созданному вами классу.
  • Эти атрибуты всегда общедоступны по своей природе, и доступ к ним можно получить с помощью оператора точки после имени класса. Например, ClassName.AttributeName предоставит вам конкретную информацию об атрибуте этого конкретного класса.

Синтаксис для определения класса:

класс имя_класса:

# Заявление-1

.

.

.

# Заявление-N

Например:

классный кот:

проходить

В приведенном выше примере ключевое слово class указывает, что вы создаете класс, за которым следует имя класса (в данном случае Cat). Роль этого класса еще не определена.

Преимущества использования классов в Python

  • Классы помогают правильно организовать все различные типы данных в одном месте. Таким образом, вы сохраняете код чистым и модульным, улучшая его читабельность.
  • Использование классов позволяет вам воспользоваться преимуществами другой парадигмы ООП, называемой наследованием. Это когда класс наследует свойства другого класса.
  • Классы позволяют переопределять любые стандартные операторы.
  • Классы делают ваш код повторно используемым, что делает вашу программу намного более эффективной.

Объекты в Python

Объект — это просто экземпляр любого класса, который вы определили. В момент создания класса автоматический экземпляр уже создан. Таким образом, как и в примере, класс Cat автоматически создает объект, похожий на настоящего кота — персидской породы и трехлетнего возраста. У вас может быть много разных экземпляров кошек с разными свойствами, но чтобы это имело смысл, вам понадобится класс в качестве руководства. В противном случае вы будете чувствовать себя потерянным, не зная, какая информация нужна.

Объект в целом характеризуется тремя вещами:

  • Состояние: это относится к различным атрибутам любого объекта и различным свойствам, которые он может отображать.
  • Поведение: это в основном обозначает методы этого объекта. Он также отражает то, как этот конкретный объект взаимодействует с другими объектами или реагирует на них.
  • Identity: Identity — это уникальное имя объекта, с помощью которого его можно вызывать по мере необходимости.

1. Объявление объектов

Объявление объектов также известно как создание экземпляра класса, потому что, как только вы определяете класс, сам по себе создается объект по умолчанию (как мы видели ранее), который является экземпляром этого класса. Точно так же каждый раз, когда вы создаете объект, вы, по сути, создаете новый экземпляр своего класса.

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

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

классный кот:

# Простой класс

# атрибут

attr1 = «кошачий»

атрибут2 = «кошка»

# Пример метода

деф забава(я):

print("Я", self.attr1)

print("Я", self.attr2)

# Код драйвера

# Создание экземпляра объекта

Том = кот()

# Доступ к атрибутам класса

# и метод через объекты

печать (Том.attr1)

Том.весело();

Вывод этой простой программы будет следующим:

Кошачий

я кошачий

Я кот

Как видите, мы сначала создали класс с именем cat, а затем создали экземпляр объекта с именем «Том». Три результата, которые мы получили, были следующими:

  • Feline — это результат оператора print(Tom.attr1). Поскольку Том является объектом класса Cat, а атрибут attr1 установлен как Feline, эта функция возвращает результат Feline.
  • Я кошка – Tom.fun(); использует объект с именем Tom для вызова функции в классе cat, известной как «fun». Объект Том приносит с собой атрибуты функции, и поэтому функция выводит следующие два предложения – «Я кошка».
  • Я кошка – по той же причине, что и выше.

Теперь, когда вы понимаете, как классы и объекты работают в Python, давайте рассмотрим некоторые важные методы.

2. Самостоятельный метод

Все методы, определенные в любом классе, должны иметь дополнительный первый параметр в определении функции. Программист не присваивает этому параметру никакого значения. Однако при вызове метода Python предоставляет ему значение.

В результате, если вы определяете функцию без аргументов, технически она по-прежнему имеет один аргумент. В Python это называется «я». Чтобы лучше понять это, вы можете пересмотреть свои концепции указателей в C++ или сослаться на них в Java. Самостоятельный метод работает по существу таким же образом.

Чтобы понять это лучше — когда мы вызываем любой метод объекта, например:

myObject.myMethod(arg1, arg2), Python автоматически преобразует его в myClass.myMethod(myObject, arg1, arg2).

Итак, вы видите, что сам объект становится первым аргументом метода. Вот что такое self в Python.

3. Метод __init__

Этот метод похож на конструкторы в Java или C++. Как и конструкторы, метод init используется для инициализации состояния объекта. Он содержит набор инструкций (операторов), которые выполняются во время создания объекта. Когда объект создается для класса, метод init автоматически запускает инициализированные вами методы.

Вот фрагмент кода, чтобы объяснить это лучше:

# Образец класса с методом инициализации

класс Человек:

# метод инициализации или конструктор

def __init__(я, имя):

self.name = имя

# Пример метода

def say_hi (я):

print('Привет, меня зовут', self.name)

p = человек («Сэм»)

p.say_hi ()

Выход:

Привет меня зовут Сэм

Изучайте онлайн- курсы по аналитике данных в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Переменные класса и экземпляра

Переменные экземпляра уникальны для каждого экземпляра, тогда как переменные класса предназначены для методов и атрибутов, общих для всех экземпляров класса. Следовательно, переменные экземпляра — это в основном переменные, значение которых присваивается внутри конструктора или метода с самим собой. С другой стороны, переменные класса — это те, значения которых присваиваются внутри класса.

Просмотрите следующий код, чтобы понять, как переменные экземпляра определяются с помощью конструктора (метод init):

классный кот:

# Переменная класса

животное = 'кошка'

# Метод инициализации или конструктор

def __init__(я, порода, цвет):

# Переменная экземпляра

самопорода = порода

self.color = цвет

# Объекты класса Dog

Том = кот («персидский», «черный»)

Снежок = кошка («Инди», «белый»)

print("Детали Тома:')

print('Том есть', Tom.animal)

print('Порода: ', Tom.breed)

print('Цвет:', Tom.color)

print('\nСнежные детали:')

print("Снежок это ', Snowy.animal)

print('Порода: ', Снежная.порода)

print('Цвет: ', Снежный.цвет)

Если вы выполните приведенный выше код построчно, вот результат, который вы получите:

Выход:

Детали Тома:

Том - кот

Порода: персидская

Черный цвет

Снежные детали:

Сноуи - это кошка

Порода: Инди

Белый цвет

В заключение

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

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

Если вы хотите сменить карьеру и ищете профессиональную помощь, upGrad здесь для вас. Ознакомьтесь с нашей программой Executive PG в области науки о данных , предлагаемой в сотрудничестве с IIIT-B . Познакомьтесь с более чем 14 языками и инструментами программирования (включая Python), а также получите доступ к более чем 30 отраслевым проектам. Студенты любого потока могут записаться на эту программу при условии, что они набрали не менее 50% баллов по бакалавриату.

У нас солидная база учащихся из более чем 85 стран, более 40 000 платных учащихся по всему миру и более 500 000 счастливых работающих профессионалов. Наша всесторонняя помощь в построении карьеры в сочетании с обучением и мозговым штурмом со студентами со всего мира позволяет вам максимально использовать свой учебный опыт.

Что такое классы и объекты в Python?

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

Какой парадигме программирования следует Python?

Существует четыре основных различимых парадигмы, за которыми следует Python: объектно-ориентированная, процедурная, функциональная и императивная. Python активно поддерживает объектно-ориентированные концепции; однако это не чисто объектно-ориентированный язык программирования.
Причина поддержки различных парадигм программирования заключается в том, что на нее заметно влияют некоторые сценарии, такие как CoffeeScript, и объектно-ориентированные языки программирования, такие как Ruby. Он также сочетается с такими языками, как R, для повышения эффективности и вычислительной мощности.
Будучи мультипарадигмальным языком, Python считается одним из самых универсальных языков. Он широко используется для разработки, анализа данных, просмотра веб-страниц и автоматизации.

Что такое модификаторы доступа в Python?

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