Mejora la seguridad de tu código Python implementando atributos privados

Posted by

En este tutorial, aprenderás cómo mejorar la seguridad de tu código Python utilizando atributos privados. Los atributos privados en Python son aquellos que son accesibles solo dentro de la clase en la que fueron declarados. Esto te ayuda a proteger tus datos y prevenir accesos no autorizados.

Para declarar un atributo como privado en Python, simplemente agrega dos guiones bajos al principio del nombre del atributo. Por ejemplo, si quieres declarar un atributo privado llamado "_password", lo harías de la siguiente manera:

class Usuario:
    def __init__(self, username, password):
        self._username = username
        self._password = password

Ahora, vamos a ver cómo podemos acceder a estos atributos privados desde fuera de la clase. Por defecto, Python no impide el acceso a los atributos privados, pero hay una convención que se utiliza para indicar que un atributo es privado y no debe ser accedido directamente. Esta convención consiste en agregar un guion bajo seguido del nombre de la clase antes del nombre del atributo, por ejemplo:

class Usuario:
    def __init__(self, username, password):
        self._username = username
        self._password = password

usuario = Usuario("ejemplo", "1234")
print(usuario._username)  # Output: ejemplo
print(usuario._password)  # Output: 1234

Como puedes ver, podemos acceder a los atributos privados de la clase Usuario desde fuera de la misma. Sin embargo, esto va en contra del principio de encapsulamiento de la programación orientada a objetos, ya que estamos exponiendo la implementación interna de la clase.

Para mejorar la seguridad de nuestro código y prevenir accesos no autorizados a los atributos privados, podemos utilizar propiedades en Python. Las propiedades nos permiten controlar el acceso a los atributos de una clase y realizar validaciones antes de asignar o recuperar un valor.

Aquí te muestro un ejemplo de cómo podemos utilizar propiedades para hacer que los atributos _username y _password de la clase Usuario sean privados y solo se puedan acceder a través de métodos getter y setter:

class Usuario:
    def __init__(self, username, password):
        self._username = username
        self._password = password

    @property
    def username(self):
        return self._username

    @username.setter
    def username(self, value):
        self._username = value

    @property
    def password(self):
        return self._password

    @password.setter
    def password(self, value):
        self._password = value

usuario = Usuario("ejemplo", "1234")
print(usuario.username)  # Output: ejemplo
print(usuario.password)  # Output: 1234

usuario.username = "nuevo_ejemplo"
usuario.password = "5678"

print(usuario.username)  # Output: nuevo_ejemplo
print(usuario.password)  # Output: 5678

En este ejemplo, hemos definido los métodos getter y setter para los atributos _username y _password de la clase Usuario. Ahora, para acceder o cambiar estos atributos, debemos hacerlo a través de los métodos username y password, lo que nos permite controlar el acceso y realizar validaciones si es necesario.

En resumen, para mejorar la seguridad de tu código Python y proteger tus datos, utiliza atributos privados y propiedades para controlar el acceso a los mismos. Esto te ayudará a mantener la integridad de tu código y prevenir accesos no autorizados a tus datos sensibles. ¡Espero que este tutorial te haya sido de utilidad!

0 0 votes
Article Rating
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@CodigoEspinoza
2 months ago

Curso de Python Gratuito 👉 https://youtu.be/fJ4KoCeKyeQ