Три типа методов в Python — и у каждого своя логика работы с объектом и классом
Чтобы понять разницу, держим в голове простую аналогию: класс
Теперь по методам:
Обычный метод получает сам объект через
classmethod получает класс через
staticmethod не получает ни объект, ни класс. Это просто функция, живущая внутри класса по смыслу — например, проверка валидности имени.
Запись с
Важный нюанс: не каждой вспомогательной функции нужен staticmethod. Иногда её логичнее вынести обычной функцией модуля — так код чище.
#Python #classmethod #ООП
Чтобы понять разницу, держим в голове простую аналогию: класс
Pizza описывает, как устроена пицца вообще, а экземпляр — это уже конкретная приготовленная пицца.Теперь по методам:
Обычный метод получает сам объект через
self — работает с конкретной пиццей, её именем и состоянием.classmethod получает класс через
cls. Удобно для фабрик: внутри можно создать новый экземпляр и сразу настроить его.staticmethod не получает ни объект, ни класс. Это просто функция, живущая внутри класса по смыслу — например, проверка валидности имени.
Запись с
@ — это декоратор, он и определяет способ вызова метода.Важный нюанс: не каждой вспомогательной функции нужен staticmethod. Иногда её логичнее вынести обычной функцией модуля — так код чище.
#Python #classmethod #ООП
💯2❤1👍1🔥1👏1