Атрибуты класса, classmethod и staticmethod

Поделиться
HTML-код
  • Опубликовано: 27 сен 2024
  • Посмотрим в первом приближении на атрибуты класса, как с ними работать, для чего нужны декораторы classmethod и staticmethod.
    1) LEGB - правило продолжает действовать для простых имен переменных и их поиска
    2) для self атрибутов поиск идет сначала в объекте, потом в классе, затем у предков OCP(object-class-parent). То есть через селф можно достучаться как к обычным методам/атрибутам, так и к классовым, статичным
    3) если через self пытаться поменять неизменяемый атрибут (строка) класса, то будет создана локальная копия, ее не увидят другие объекты класса
    4) если менять через self изменямый атрибут класса (список), то он изменится для всех объектов класса
    5) cls - это ссылка на класс (не объект!), питон передает его под капотом. cls = Class
    6) classmethod используется для работы с атрибутами класса и с другими методами класса. Часто используется для конструирования готовых объектов
    7) staticmethod не получает ссылок под капотом, это просто функция связанная контекстом с классом. Используется редко и часто завуалированно
    Читать:
    docs.python.or...
    docs.python.or...
    Присоединяйтесь к помощи каналу, будет интересно)
    ✔️Бусти boosty.to/pyth...
    ✔️Юмани 410011506612886
    Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
    Смотри там где удобно🤩
    ✔️ python_...
    ✔️ boosty.to/pyth...
    ✔️ / pythonrussian
    ✔️ t.me/python_ru...
    ✔️ dzen.ru/python...
    ✔️ rutube.ru/chan...
    #Python #PythonRussian #PyCharm

Комментарии • 33