Сегодня мы будем обсуждать методы экземпляра, методы классов и статические методы в Python. Эти методы используются с объектно-ориентированным программированием в Python.
Методы экземпляра
Методы экземпляра являются наиболее часто используемыми методами в ООП в Python. Все методы экземпляра могут изменить состояние объекта, то есть изменение значений элементов (переменных) объекта. Первый параметр – Я которые в основном указывают на экземпляр, вызывающий метод. Имя Я Это просто соглашение об именах, технически его можно назвать.
drink_1 = Drink("Pepsi","small") drink_1.get_drink()
Во второй строке Я Указывает на экземпляр пить_1. . Мы также можем явно установить значение для самого параметра.
drink_1 = Drink("Pepsi","small") Drink.get_drink(self = drink_1)
Методы класса
Предположим, мы определяем схему для пользовательского стола
Теперь скажем, мы хотим создать функцию, которая возвращает все строки в таблице. Мы могли бы добавить его как метод экземпляра.
Вышеуказанное определение класса функционально правильно. Однако, чтобы вызвать функцию get_all_rows () нам нужен экземпляр Пользователь класс, который будет создан. Но что, если мы хотим получить доступ к этому методу от самого класса, а не экземпляра. Рассмотрим случай, когда таблица пуста или в основном, ни один экземпляр класса Пользователь создано. Мы все еще должны быть в состоянии выполнить запрос.
Мы можем использовать ClassMethod Декоратор, чтобы сделать функцию get_all_rows () Способ класса и сделать его Callable, используя сам класс.
Теперь мы можем назвать функцию get_all_rows () следующим образом
User.get_all_rows()
Как слово Я , CLS также является Конвенцией именования. В приведенном выше фрагменте кода, когда функция get_all_rows () называется используя класс Пользователь , CLS указывает на класс.
Хотя get_all_rows () Это метод класса, он также может быть вызван с использованием экземпляра класса. Если это называется с использованием экземпляра, CLS указывает на экземпляр.
User().get_all_rows()
Способы класса также могут быть использованы для выполнения заводской структуры или имеют несколько функций конструктора.
У нас есть пара классических методов для класса Пользователь Отказ Первый метод позволяет нам создать экземпляр Пользователь От объекта JSON, а второй метод позволяет нам создать пользователь администратора.
С CLS Указывает на класс, CLS (имя, возраст) создает экземпляр класса. Мы в основном возвращаем экземпляр, и этот экземпляр присваивается переменной.
Статические методы
Статический метод аналогичен методу класса, однако он не может получить доступ к любым членам класса или членов экземпляра. Это не принимает параметр, как CLS. или себя . Это более полезная функция, то есть функция, которая не нуждается в доступе к членам класса, но может использоваться для описания класса каким-то образом. Чтобы определить статический метод, мы используем StaticMethod декоратор
Рассмотрим статический метод iS_drink_healthy. не нужно получать доступ к любым членам класса или экземпляра Но это описывает класс. Поскольку функция связана с классом, ее можно использовать в качестве статического метода, связанного с классом. Это также может быть определено за пределами класса. Однако, поскольку его можно использовать для описания класса, это хорошая практика, чтобы иметь его в качестве статического метода.
Называть функцию IS_DRINK_HELATHY. мы можем назвать это, используя класс или экземпляр
Drink.is_drink_healthy() Drink().is_drink_healthy()
Объединение всех методов вместе
- У нас есть класс под названием Pizza, init Метод принимает список ингредиентов и создает экземпляр пиццы
- У него также есть два класса методов, которые позволяют создать вегетарианскую или куриную пиццу
- Он имеет статический метод для расчета площади пиццы, метод не должен получить доступ к любому из членов класса или экземпляра. Это полезность.
Резюме
- Методы экземпляра являются нормальными методами, определенными внутри класса. Им нужен пример, который будет создан для создания. Первый параметр – Я какие указывает на экземпляр класса
- Способ класса можно назвать с помощью самого класса и не нужен, который будет создан. Первый параметр – CLS который указывает на класс, если он называется используя класс или он может указывать на экземпляр, если он называется с использованием экземпляра
- Статические методы – это коммунальные функции, которые можно использовать для описания класса/экземпляра. У них нет доступа к членам класса/экземпляра.
Оригинал: “https://dev.to/rahulbanerjee99/day11-instance-methods-class-methods-and-static-methods-3hjn”