← Volver

Cómo definir un método o atributo privado

Python no distingue entre métodos o atributos públicos y privados, sino que todos los objetos dentro de una clase o módulo pueden ser accedidos por fuera de ellos. No obstante, como convención se prefija un guión bajo para indicar que un objeto debería ser interpretado –por el programador– como privado.

class MiClase:

def __init__(self):
self._atributo_privado = 1

def _metodo_privado(self):
print("Hola mundo!")


mi_objeto = MiClase()
print(mi_objeto._atributo_privado)
mi_objeto._metodo_privado()

En una API, por ejemplo, las funciones "privadas" generalmente no están documentadas y no se adhieren a ningún programa de retrocompatibilidad (backward compatibility). Por esta razón no es recomendable hacer uso de ellas por fuera de la clase o módulo en la que están definidas.

¿Alguna duda sobre este código? ¡Preguntanos en el foro!