@martineau Конкретные имена имеют особое значение, но сами подчеркивания не являются специальными. Правила требуют специальных имен, чтобы следовать соглашениям подчеркивания.
мы определяем класс в Python, то есть мы являемся авторами класса,
разрешено ли нам создавать атрибуты класса, чьи имена начинаются и заканчиваются двойным подчеркиванием, и не конфликтуют со специальными атрибутами, например,__base__, __class__, __name__, __dict__
и специальные методы, такие как__new__, __init__, __str__, __repr__, __hash__, __call__, __get__
?
Если да, будет ли поиск таких атрибутов (например,__madeupAttribute__
) что мы определяем как поиск этих специальных атрибутов? Обратите внимание, что процесс поиска для этих специальных атрибутов отличается от процесса поиска для обычных атрибутов (например,attribute1
, attribute2
), как упомянуто в Python в двух словах
Несколько атрибутных dunder-имён являются особыми,C.__name__
, C.__bases__
, x.__class__
, Когда вы ссылаетесь на атрибут с одним из этих специальных имен, ссылка на атрибут смотрит прямо в выделенный слот в объекте класса или экземпляра и выбирает значение, которое он там находит. Вы не можете отменить эти атрибуты.
Разрешено ли создавать атрибуты класса, чьи имена начинаются с одного подчеркивания?
Разрешено ли создавать атрибуты класса, чьи имена начинаются с двух подчеркиваний?
Обратите внимание, что я прочиталЧто означает одинарный или двойной знак подчеркивания перед именем объекта?, Мои вопросы в этом посте: какие атрибуты может создавать автор класса Python, а какие нет.
Благодарю.