Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Definición de atributos privados | Encapsulamiento
Programación Orientada a Objetos en Python

bookDefinición de atributos privados

Desliza para mostrar el menú

Los atributos privados representan el nivel más alto de protección de datos en el modelo de encapsulamiento de Python. Al utilizar doble guion bajo, activan el mecanismo de name mangling de Python, transformando los atributos sensibles en identificadores casi inaccesibles. Esto proporciona una protección robusta contra interferencias accidentales y ayuda a crear diseños de clases seguros y profesionales.

123456789101112131415161718192021
class BankAccount: def __init__(self, owner, balance): self.owner = owner # Public attribute self.__balance = balance # Private attribute def deposit(self, amount): if amount > 0: self.__balance += amount print(f"Deposited {amount}. New balance: {self.__balance}") else: print("Deposit amount must be positive.") def withdraw(self, amount): if 0 < amount <= self.__balance: self.__balance -= amount print(f"Withdrew {amount}. New balance: {self.__balance}") else: print("Invalid withdrawal amount.") def get_balance(self): return self.__balance
copy
Note
Nota

Aunque técnicamente se puede acceder a los atributos privados mediante sus nombres modificados, hacerlo viola el encapsulamiento y nunca debe utilizarse en código de producción.

Un atributo privado como __balance en BankAccount se renombra automáticamente a _BankAccount__balance mediante el name mangling. Esto dificulta el acceso directo y desincentiva su uso externo.

Los atributos privados protegen estados sensibles y aseguran la interacción solo a través de métodos públicos validados. En clases como Wallet o BankAccount, datos como el saldo, el PIN y el historial de transacciones permanecen privados, mientras que métodos como deposit(), withdraw() y authenticate() aplican reglas y mantienen la seguridad.

question mark

¿Cuál es el propósito principal de los atributos privados en Python?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 2

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 5. Capítulo 2
some-alt