и посмотреть медиа
Pythonist's Library: Python Django Flask
и посмотреть медиа
Everything useful for Python developers: Django, Flask and libraries.
Everything useful for Python developers: Django, Flask and libraries.
Comprehensive channel for Pythonists. Contains selections of libraries, guides on Django and Flask, code examples and tips. Everything most needed in one place for efficient work and learning web development in Python.
👍 classmethod, staticmethod или instance method: простое правило выбора Смотрите что метод реально использует: — нужен self → instance method — нужен cls, но не конкретный экземпляр → @classmethod — не нужно ни то ни другое → @staticmethod 🔵 Instance method — работа с состоянием объекта Всё что читает или меняет атрибуты конкретного экземпляра. Стандарт по умолчанию. 🟢 @classmethod — альтернативные конструкторы Python не поддерживает перегрузку init, поэтому когда нужно создать объект из разных источников — каждый способ становится classmethod: # из стандартной библиотеки date.today() date.fromtimestamp(1718539200) date.fromisoformat("2026-06-16") Все возвращают date, но стартуют из разного сырья. Ещё один хороший кейс — реестры и кэши на уровне класса: class Handler: _registry: dict[str, type["Handler"]] = {} @classmethod def register(cls, name: str, handler: type["Handler"]) -> None: cls._registry[name] = handler 🟡 @staticmethod — утилита без контекста Чистая функция которая живёт в классе для удобства неймспейса. Не трогает ни self ни cls: class Color: @staticmethod def hex2rgb(hex_value: str) -> tuple[int, int, int]: return tuple(int(hex_value[i:i+2], 16) for i in (1, 3, 5)) Сигнал: если staticmethod можно вынести на уровень модуля и ничего не сломается — возможно, так и стоит сделать. Это не плохой паттерн, просто честный вопрос. 📍 Навигация: Вакансии • Задачи • Собесы Библиотека питониста #буст
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!