@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, а какие нет.

Благодарю.

Ответы на вопрос(0)

Ваш ответ на вопрос