Encontré una pregunta similar, quizás te sirva la respuesta que le dieron.
Entendiendo la ausencia de punteros en Python
En Python todo es un objeto creado en la memoria dinámica (mantenida
automáticamente). Cuando llamas a una función los argumentos son
pasados mediante sus punteros. Es lo que se conoce como convención de
llamada por objeto.
En la otra respuesta, dice esto.
En general, los objetos de reservan en la memoria dinámica de los procesos, y las variables son referencias a ellos: casi casi que las referencias son abstracciones de los punteros, con algunas propiedades más.
Por este motivo, el pasaje de parámetros se hace siempre por referencia, por lo que no se necesitan punteros para esto.
Entonces en un comentario le responden esto.
falso, el paso de parámetros se hace por valor, pero se trata de valores referencia.