Структурирование вашего проекта Python по-другому
Теперь вы знаете, как определить свои функции и как организовать свой код в модулях. Пришло время углубиться в объектно-ориентированное программирование на Python.
В этом руководстве мы рассмотрим основные функциональные возможности объектов и классов Python. Вы узнаете, что такое класс, и как создавать свои классы и использовать их в своей программе.
Все программные проекты начинаются с малого, и вы, скорее всего, начнете с написания всего кода в одном файле или блокноте. По мере роста вашего проекта вы можете использовать функции и модули сами по себе при написании простых программ в так называемом процедурном программировании.
Объектно-ориентированный подход к программированию становится тем ценнее, чем больше увеличивается размер и сложность вашей программы.
Что такое объектно-ориентированное программирование?
Объектно-ориентированное программирование (ООП) — это подход к разработке программного обеспечения, в котором используется процесс определения объектов и их взаимодействия при планировании кода для разработки компьютерной программы.
Действительно, чем больше данных и функций составляют ваш код, тем важнее организовать их в логические отдельные подгруппы, убедившись, что связанные данные и функции сгруппированы и что данные и функции, которые не связаны между собой, не мешают друг другу.
Программы, созданные с помощью этого подхода (ООП), более гибкие и простые в написании. Преимущество объектно-ориентированного проектирования заключается в возможности повторного использования объектов. Поскольку у каждого объекта есть только одно задание, код для объекта остается применимым для любого случая, когда объект необходим.
Python — это объектно-ориентированный язык программирования.
Язык программирования можно назвать объектно-ориентированным, если он предоставляет разработчикам четыре основные возможности:
- Инкапсуляция — возможность хранить связанную информацию, будь то данные (атрибуты) или функции (методы), вместе в объекте.
- Агрегация — возможность хранить один объект внутри другого объекта.
- Наследование — способность класса полагаться на другой класс (или многие классы) для некоторых своих свойств и методов.
- Полиморфизм — возможность написать одну функцию или метод, который работает по-разному.
Объектно-ориентированное программирование(О.О.П) — это очень мощная концепция программирования, позволяющая структурировать программы по-новому.
- В Python все является объектом.
- Объект — этоэлемент с уникальным идентификатором и определенным набором атрибутов и поведений. Когда мы создаем объект, мы называем его экземпляром этого класса.
- Значения данных, хранящиеся внутри объекта, называются атрибутами, а функции, связанные с объектом, называются методами
- Атрибуты – этоспецифические функции, определяющие свойства или характеристики объекта.
- Методы — это процедуры, описывающие поведение объекта и его взаимодействие с другими объектами.
- Класс — этонабор независимых объектов, которые имеют схожие свойства и методы.
В ООП мы определяем «объект», который может содержать «атрибуты», а также «методы», которые воздействуют на объект. себя
Определение класса в Python
Прежде чем погрузиться в наш код, вы должны знать, что простейшая форма определения класса выглядит так:
class ClassName: <statement-1> . . . <statement-N>
Используя ключевое слово class, вы можете создать шаблон, а затем создать несколько объектов, используя это определение класса.
Давайте переключимся на более реалистичную настройку, допустим, вы работаете в компании, и директор по персоналу попросил вас создать программное обеспечение для обработки данных о сотрудниках.
У каждого сотрудника должен быть уникальный идентификатор, который автоматически увеличивается при каждом добавлении нового сотрудника, а также следующие атрибуты (имя, роль и зарплата).
Директор по персоналу также просит вас создать метод для извлечения всех атрибутов сотрудника.
class Employee: count=0 def __init__(self, name, role, salary): Employee.count += 1 self.id = Employee.count self.name = name self.role = role self.salary = salary
Если вы запустите код, ничего не произойдет, так как первый метод __init__() — это специальный метод, который называется конструктором класса или методом инициализации, который Python вызывает при создании объекта. новый экземпляр (объект) этого класса.
Метод __init__()
может иметь аргументы в пользу гибкости. В этом случае аргументы, переданные оператору создания экземпляра класса, передаются в __init__()
.
Создание экземпляров объектов
Операция инстанцирования («вызов» объекта класса) создает пустой объект. В нашем примере новый инициализированный экземпляр сотрудника можно получить следующим образом:
e1=Employee("John", "Manager", 80000)
Обратите внимание, что параметр self не используется в качестве входных данных для нашего класса, чтобы инициировать наш объект. Это связано с тем, что в Python слово self
является первым параметром методов, представляющих экземпляр класса. Поэтому для вызова атрибутов и методов класса программисту необходимо использовать self
.
Атрибут id автоматически увеличивается нашим классом и также не передается в качестве параметра.
Теперь давайте инициируем 4 экземпляра Employee и определим метод для извлечения атрибутов сотрудника.
Определение нашего метода первого класса
Для примера давайте определим простую функцию, которая печатает наши 4 параметра.
Вызов методов нашего класса
Метод — это функция, которая «принадлежит» объекту. Вы можете вызвать функцию с помощью . обозначение. Так просто, как, что.
Теперь давайте добавим условие If __name__ == '__main__'
внизу нашего модуля, чтобы включить режим сценариев, затем инициируем экземпляры наших 4 сотрудников и используем наш метод getEmployeesDetails, чтобы показать их данные.
Когда приведенный выше скрипт выполняется, он дает следующий результат:
В Python термин "метод" не уникален для экземпляров класса: другие типы объектов также могут иметь методы. Например, объекты списков имеют методы с именами append, insert, sort и т. д.
Заключение
На этом этапе мы рассмотрели основные функциональные возможности объектов и классов Python. Вы узнали, что такое класс, и как вы можете создавать свои классы и инициализировать объекты вашего собственного типа данных.
Вы также узнали, как устанавливать атрибуты на этапе инициализации и создавать полезные методы для обработки этих атрибутов.
Если вам нравится читать такие истории и вы хотите поддержать меня как писателя, подумайте о том, чтобы зарегистрироваться, чтобы стать участником Medium.
Полное руководство по модулям Python
Структурирование проекта с помощью модулейpython.plainenglish.io
Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.