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

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

…парадигма программирования, основанная на концепции «объектов», которые могут содержать данные в форме полей, часто называемых атрибутами, и код в форме процедур, часто называемых методами. -Википедия

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

Для начала создадим простой объект. Создайте новый проект и дайте ему имя, например «AnimalClassList». Сначала мы можем сделать кошку с возрастом, цветом и, самое главное, с именем. Вы можете выбрать для них любые типы данных и имена для ссылки на них. Как видите, тут мы сразу попали в неразбериху. Мы пройдем шаг за шагом через этот процесс.

Для начала у нас должен быть модуль, так что создайте его. Затем мы определяем это как класс, говоря class ClassName. Вы можете сделать имя класса отличным от имени модуля, но это упрощает чтение вашего списка модулей, когда у вас есть такая согласованность. Также обратите внимание, что это очень похоже на создание метода. После этого у вас есть возможность создать описание класса с одинарными кавычками. Наконец, вам нужен специализированный метод, называемый конструктором. Что делает этот метод, так это создает объект этой структуры, когда он вызывается в другом месте. Правила для этого конструктора включают:

  • Подпись должна быть __init__(self, paramNames, …):
  • Если переменные связаны с типом класса, определите как self.varName = dataType
  • Можно сделать только один (можно несколько на других языках)

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

Во-первых, между именами всех этих методов есть очень четкое разделение, но у них есть несколько ключевых слов для описания того, что они делают. «Сеттеры» или методы, начинающиеся со слова «set», — это методы для установки переменных в классе. Конечно, вы можете назвать это как угодно, но опять же, последовательность и легче найти. Другой тип — это «Getter» или метод со словом «get». Это получает значение переменной в классе и отправляет его обратно туда, где оно было вызвано с использованием ключевого слова return.

Ничего себе, это много, но это было не так сложно. А если бы это было радио? Мы могли бы создать класс Радио, в конструкторе мы определяем такие переменные, как громкость, частота, истинные и ложные настройки и переменные часов. Объектно-ориентированное программирование — это хорошая отправная точка при изучении языков, а также эффективная структура, поскольку основы объекта в реальной жизни легко определяют схему, которую вы вводите. Конечно, это не так просто, когда вы приобретаете более крупные системы, но вы получаете представление о том, куда все это идет.

Далее мы рассмотрим создание объектов и вызов их методов! Для этого мы будем использовать только что созданный класс кошек! Прежде всего, нам нужно сообщить другому модулю, что мы используем здесь этот объект, иначе он не поймет, что мы делаем! Как видите, нам нужно сделать то, что называется импортом класса, где мы сообщаем ему имя пакета и что мы импортируем. Затем создайте имя переменной и присвойте значение, как для любого типа данных! Единственная разница здесь в том, что мы должны указать ему тип данных, в данном случае Object of Cat из модуля Cat. Первое значение в Cat.Cat() — это модуль, а следующее — определение класса.

Еще одна вещь, или мы получим это исключение здесь. Нам нужно определить значения, что можно сделать при создании кота (как показано ниже).

Конечно, мы используем те же шаги, чтобы дать этим кошкам новые имена, возраст и цвет, но мы не должны этого делать, потому что мы бы не сделали этого в реальной жизни, поэтому мы фактически не будем использовать сеттеров с этим классом.

Ой, а можно попробовать!

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

Еще один компонент для изучения — наследование классов! Возможно, у нас есть хороший базовый класс, но нам нужны более конкретные классы с похожими переменными. Мы можем добиться этого так же, как мы создали класс, за исключением того, что значение находится в квадратных скобках, где мы сначала называем класс, как показано ниже. Также обратите внимание, что у нас ничего нет в классе.

Если мы сделаем переменную класса и будем использовать те же методы, что и исходный класс…

Найдите минутку, потому что это что-то особенное.

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

Ссылки для использования: