- 1

Fundamentos de Programación con Python para Principiantes
02:04 - 2

Instalación y Uso Básico de Python en Windows y Mac
08:10 - 3

Semántica y Sintaxis en Programación Python
10:15 - 4
Práctica: Te doy la bienvenida a los ejercicios interactivos
00:00 - 5

Manejo de Cadenas y Operaciones Básicas en Python
13:06 - 6

Tipos de Datos en Python: Enteros, Flotantes y Booleanos
07:22 - 7
Dominio de la función `print` en Python: usos y formatos avanzados
04:00 - 8

Operaciones matemáticas avanzadas en Python: módulo, potencia y más
11:01 - 9

Entrada de información y manejo de tipos de datos en Python
04:53
Métodos y Atributos Privados y Protegidos en Python
Clase 52 de 63 • Curso de Python
Contenido del curso
- 23

Programación Orientada a Objetos en Python: Clases y Métodos Básicos
14:11 - 24

Gestión de Biblioteca con Programación Orientada a Objetos
18:07 - 25

Herencia y Polimorfismo en Programación Orientada a Objetos
13:57 - 26

Programación Orientada a Objetos: Implementación de Clases y Herencia
13:10 - 27

Polimorfismo en Programación Orientada a Objetos
06:21 - 28

Herencia y Uso de la Función super() en Python
07:28 - 29
Programación Orientada a Objetos: Atributos, Métodos y `super()` en Python
05:06
- 37
Programación Avanzada en Python: POO, Excepciones y Proyectos
01:45 - 38

Escritura de Código Pytónico y Buenas Prácticas en Python
03:58 - 39

Comentarios y Docstrings: Buenas Prácticas en Programación
07:01 - 40

Tiempo de vida y alcance de variables en Python
14:11 - 41

Anotaciones de Tipo en Python para Código Más Legible
13:12 - 42

Validación de Tipos y Manejo de Excepciones en Python
13:05 - 43

Estructuras de Datos Avanzadas en Python: Collection y Enumeraciones
13:15
- 47

Uso de Métodos Mágicos en Python
06:47 - 48
Sobrecarga de Operadores en Python: Personaliza Comportamiento de Clases
04:18 - 49

Ejecutar scripts Python con `if __name__ == '__main__'`
05:42 - 50

Metaprogramación en Python: Métodos `__new__` y `__init__`
03:59 - 51

Uso de *args y **kwargs en funciones de Python
14:32 - 52

Métodos y Atributos Privados y Protegidos en Python
09:26 - 53

Uso de Property en Python: Getter, Setter y Eliminación de Atributos
07:56 - 54

Métodos estáticos y de clase en Python
07:46
¿Qué es el encapsulamiento en programación orientada a objetos?
El encapsulamiento en programación orientada a objetos es fundamental para proteger la integridad de los datos y delimitar el acceso a los mismos. Esta técnica permite que cada clase restrinja la información que puede ser accedida desde el exterior, asegurando que solo las partes autorizadas del código puedan modificar o leer ciertos atributos. A través de los métodos y atributos privados y protegidos, es posible controlar este acceso y mantener la seguridad y estabilidad del software.
¿Cómo se implementan métodos y atributos protegidos?
En Python, los métodos y atributos protegidos se distinguen por el uso de un guión bajo (_) al inicio de su nombre. Esta convención no impide directamente el acceso desde el exterior, pero señala a otros desarrolladores que estos elementos deberían considerarse internos de la clase. Por ejemplo:
class BaseClass:
def __init__(self):
self._variable_protegida = "Valor protegido"
def _metodo_protegido(self):
print("Este es un método protegido")
Pese a ser protegidos, todavía es posible acceder a ellos desde fuera de la clase, pero no se recomienda hacerlo. Su propósito es utilizarlos dentro de la clase y sus subclases.
Ejemplo de acceso a métodos y atributos protegidos
A continuación, se muestra cómo se puede trabajar con elementos protegidos en una instancia:
objeto_base = BaseClass()
print(objeto_base._variable_protegida) # Acceso a la variable protegida
objeto_base._metodo_protegido() # Llamada al método protegido
Es importante recordar que, aunque es posible acceder a estos elementos, hacerlo rompe la convención de programación orientada a objetos y puede resultar en un código menos limpio y más propenso a errores.
¿Cuál es la función de los métodos y atributos privados?
Los métodos y atributos privados se utilizan para restringir el acceso exclusivamente al interior de la clase. En Python, se indica un método o atributo como privado utilizando un doble guión bajo (__). Esta no es una restricción absoluta, pero sí complica el acceso no autorizado a estos elementos:
class BaseClass:
def __init__(self):
self.__variable_privada = "Valor privado"
def __metodo_privado(self):
print("Este es un método privado")
Los métodos privados solo pueden ser accedidos dentro de la clase, y al igual que los atributos privados, están diseñados para mantener la privacidad y la encapsulación de la lógica del programa.
Llamando métodos privados desde métodos públicos
Para interactuar con métodos y atributos privados desde fuera de la clase, puedes implementar métodos públicos que actúen como pasarelas seguras:
class BaseClass:
def __init__(self):
self.__variable_privada = "Valor privado"
def __metodo_privado(self):
print("Este es un método privado")
def metodo_publico(self):
self.__metodo_privado() # Llamada al método privado desde uno público
Intentar acceder a métodos y atributos privados desde fuera
El intento de acceder directamente a métodos o atributos privados desde fuera de la clase generará un error:
objeto_base = BaseClass()
# Esto producirá un error:
print(objeto_base.__variable_privada)
# Esto también producirá un error:
objeto_base.__metodo_privado()
Estos errores destacan cómo el encapsulamiento efectivo protege las propiedades de las clases de accesos indeseados.
Ejercicio práctico: Implementa una clase cuenta bancaria
Para poner en práctica lo aprendido, intenta crear una clase CuentaBancaria donde puedas registrar y visualizar el saldo. Debe incluir:
- Un método protegido para actualizar el saldo que pueda ser consultado externamente.
- Un método privado para registrar las transacciones, que sea interno a la clase.
Al desarrollar esta clase, te familiarizarás con el uso de métodos y atributos protegidos y privados, consolidando tus habilidades en encapsulamiento y programación orientada a objetos. ¡Sigue adelante, la práctica constante te llevará a la maestría!