Some uncallable attributes aren't referencing existing objects but create objects when accessed. I'd like to know what the formal Python term for this is and how it's implemented.
An example is the T attribute of numpy arrays. It's equivalent to the transpose method with default arguments.
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