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

Посмотрим в первом приближении на атрибуты класса, как с ними работать, для чего нужны декораторы classmethod и staticmethod. 1) LEGB - правило продолжает действовать для простых имен переменных и их поиска 2) для self атрибутов поиск идет сначала в объекте, потом в классе, затем у предков OCP(object-class-parent). То есть через селф можно достучаться как к обычным методам/атрибутам, так и к классовым, статичным 3) если через self пытаться поменять неизменяемый атрибут (строка) класса, то будет создана локальная копия, ее не увидят другие объекты класса 4) если менять через self изменямый атрибут класса (список), то он изменится для всех объектов класса 5) cls - это ссылка на класс (не объект!), питон передает его под капотом. cls = Class 6) classmethod используется для работы с атрибутами класса и с другими методами класса. Часто используется для конструирования готовых объектов 7) staticmethod не получает ссылок под капотом, это просто функция связанная контекстом с классом. Используется редко и часто завуалированно Читать: #class-and-instance-variables Присоединяйтесь к помощи каналу, будет интересно) ✔️Бусти Будь первым везде и всегда, включай уведомления о новых выпусках 🔔 #Python #PythonRussian #PyCharm
Back to Top