Нет распространения в доступе к цепочке атрибутов Python

Есть ли в Python нулевой оператор распространения ("оператор нулевого доступа к членам"), чтобы я мог написать что-то вроде

var = object?.children?.grandchildren?.property

как в C#, VB.NET и TypeScript, вместо

var = None if not myobject\
              or not myobject.children\
              or not myobject.children.grandchildren\
    else myobject.children.grandchildren.property

person VBobCat    schedule 05.01.2020    source источник
comment
@smci, OP специально спрашивает о доступе к цепочке атрибутов. Для этого вполне может быть дубликат, но я не думаю, что это тот, который вы предложили.   -  person Chris    schedule 05.01.2020
comment
@Chris: хорошо, пожалуйста, переименуй, переименуй теги и перефразируй соответственно. (Исходное название было просто null/None propagation in Python)   -  person smci    schedule 05.01.2020
comment
@Chris: заголовок вопроса нельзя было понять, не прочитав тело б) в нем нет тегов, по которым его можно было бы найти поиском. Это может привести к дублированию в будущем.   -  person smci    schedule 05.01.2020
comment
@smci, мы тут в сорняках. Вопрос уже был улучшен вашими правками и несколько меньше моими. Давайте не будем спорить о том, чем оно изначально было. Я посмотрю, смогу ли я найти дополнительные теги для него.   -  person Chris    schedule 05.01.2020
comment
Спасибо, ребята, за правки. Я подумал о добавлении тега #null-propagation, но он был специфичен для C#, и у меня недостаточно представителей для создания нового, более общего тега. При этом у меня есть ответ, который я искал, и я не нашел его до использования поиска SO.   -  person VBobCat    schedule 05.01.2020


Ответы (1)


Нет. Существует PEP, предлагающий добавить такие операторы, но этого не произошло. (пока) принято.

В частности, одним из операторов, предложенных в PEP 505, является

Оператор "None-осведомленного доступа к атрибуту" ?. ("может быть, точка") оценивает полное выражение, если левая часть оценивается как значение, отличное от None

person Chris    schedule 05.01.2020