Как это называется в Python, когда доступ к не вызываемому атрибуту запускает метод и как это делается?

Некоторые не вызываемые атрибуты не ссылаются на существующие объекты, но создают объекты при доступе к ним. Я хотел бы знать, что такое формальный термин Python для этого и как он реализован.

Примером может служить атрибут T массивов numpy. Это эквивалентно методу транспонирования с аргументами по умолчанию.

x = np.reshape(range(6), newshape = (2,3))
print(x)
# array([[0, 1, 2],
#        [3, 4, 5]])

print(x.T)
# array([[0, 3],
#        [1, 4],
#        [2, 5]])

print(x.transpose())
# array([[0, 3],
#        [1, 4],
#        [2, 5]])

print(x.T is x.T)
# False because x.T isn't referencing an existing array

person BatWannaBe    schedule 03.08.2019    source источник
comment
Похоже, x.T — это свойство.   -  person John Gordon    schedule 03.08.2019
comment
@JohnGordon: я так не думаю. Я попытался воспроизвести это с помощью быстрого класса, и он отлично работает.   -  person logicOnAbstractions    schedule 03.08.2019
comment
@StephenRauch, это здорово для вас, если вы это понимаете, но если бы смысл SO заключался в том, что если кто-то что-то понимает, никто не должен об этом спрашивать, тогда нам не понадобилось бы SO.   -  person logicOnAbstractions    schedule 03.08.2019
comment
Вы спрашиваете, почему стоит задать вопрос, и, кажется, подразумеваете, что требование настолько тривиально, что его не стоит задавать. Может быть, вы понимаете, что здесь происходит, но ОП - нет. Вроде бы прекрасный вопрос и просто не вижу смысла его приуменьшать...   -  person logicOnAbstractions    schedule 03.08.2019
comment
Давайте продолжим обсуждение в чате.   -  person logicOnAbstractions    schedule 03.08.2019
comment
Интересно, что id(x) не равно id(x.T). Мы ожидали этого. Но затем выполните id(x.T) столько раз, сколько захотите, вы всегда будете получать один и тот же адрес. Так что я бы подумал, что он должен возвращать True - поскольку объект действительно (ну, согласно id()) тот же.   -  person logicOnAbstractions    schedule 03.08.2019
comment
вдруг объекты super() как атрибуты класса и методы экземпляра/класса имеют гораздо больше смысла   -  person BatWannaBe    schedule 03.08.2019