Структурирование вашего проекта 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.











Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.