Декоратор staticmethod
Часть раздела Object Oriented Programming путешествия по Python на Coddy — урок 11 из 64.
Декоратор @staticmethod создает методы, которым не требуется self или класс. Они работают как обычные функции, но принадлежат классу.
Вот пример класса со статическими методами:
class MathHelper:
@staticmethod
def add(a, b):
return a + b
@staticmethod
def is_even(number):
return number % 2 == 0Вызывайте статические методы, используя имя класса:
result = MathHelper.add(5, 3)
print(result)
check = MathHelper.is_even(10)
print(check)Вы также можете вызывать их из объекта:
helper = MathHelper()
result2 = helper.add(2, 4)
print(result2)Вывод:
8
True
6Статические методы не имеют доступа к данным экземпляра или класса:
class Calculator:
brand = "Python Calc"
def __init__(self, owner):
self.owner = owner
@staticmethod
def multiply(x, y):
# Не может получить доступ к self.owner или Calculator.brand
return x * yКлючевой момент: Используйте @staticmethod, когда вам нужна функция, которая связана с классом, но не требует доступа к экземпляру (self) или данным класса. Параметр self не требуется.
Шпаргалка
Декоратор @staticmethod создает методы, которым не требуется self или класс. Они работают как обычные функции, но принадлежат классу.
class MathHelper:
@staticmethod
def add(a, b):
return a + b
@staticmethod
def is_even(number):
return number % 2 == 0Вызывайте статические методы, используя имя класса:
result = MathHelper.add(5, 3)
check = MathHelper.is_even(10)Вы также можете вызывать их из объекта:
helper = MathHelper()
result2 = helper.add(2, 4)Статические методы не имеют доступа к данным экземпляра или класса — параметр self не требуется.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Object Oriented Programming
1Основы ООП
Внешние файлыВведение в ООПКлассы и объектыПараметр selfМетодыАтрибутыМетод-конструктор (__init__)Повторение — Простой калькулятор4Наследование
Базовое наследованиеФункция super()Переопределение методовМножественное наследованиеПорядок разрешения методовИтоги — Иерархия сотрудников7Специальные методы
Введение в магические методыПерегрузка операторовМагические методы контейнеровПовторение — Пользовательский список10Паттерны проектирования. Часть 1
Введение в паттерны проектированияПаттерн SingletonПаттерн FactoryПаттерн ObserverПаттерн Strategy5Полиморфизм
Снова о переопределении методовУтиная типизацияАбстрактные классы и методыПроектирование интерфейсовИтоги — Калькулятор фигур8Продвинутые концепции ООП
Композиция против наследованияМиксиныСтатические методы и методы классаДекораторы классовМенеджеры контекста11Паттерны проектирования. Часть 2
Паттерн КомандаПаттерн АдаптерПаттерн ДекораторПаттерн Шаблонный методПаттерн СостояниеПаттерн Компоновщик3Свойства классов
Переменные экземпляра и классаДекораторы свойствПриватные атрибутыИтоги — Менеджер банковского счета6Инкапсуляция
Public, Protected, Private члены классаМодификаторы доступаСокрытие данныхДекораторы property: продвинутый уровеньИтоги: Система учета студентов12Проект: Управление библиотекой
Обзор проектаКлассы Book и User