Посмотрим в первом приближении на атрибуты класса, как с ними работать, для чего нужны декораторы 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
184 views
2874
911
3 weeks ago 00:08:22 1.7K
5 ПРИЗНАКОВ СЕКТЫ - Михаил Агеев
3 weeks ago 01:22:01 300
Елена Филиппова. Свечная магия с Русскими Рунами[2024-11-25]
3 weeks ago 00:06:09 291
Геометрия 7 класс | ВТОРОЙ ПРИЗНАК РАВЕНСТВА ТРЕУГОЛЬНИКОВ | Атанасян
3 weeks ago 00:01:37 5
Спортивные атрибуты (МЕДИАТОН, 7 сезон — 2 тур, 2024)