logo

Método privado de Python

Introducción

En Python, un método privado es un método que no está destinado a usarse fuera de la clase en la que está definido. Estos métodos se indican con un prefijo de guión bajo doble (__) antes de su nombre y solo se puede acceder a ellos dentro de la clase donde están definidos. En este artículo, discutiremos el concepto de métodos privados en Python, sus ventajas y desventajas y cómo usarlos con ejemplos.

¿Qué es un método privado en Python?

Un método privado es un método que no está destinado a ser utilizado fuera de la clase en la que está definido. Estos métodos se utilizan para implementar la funcionalidad interna dentro de la clase. Estos no están destinados a ser utilizados por código externo. En Python, los métodos privados se indican con un prefijo de doble guión bajo antes de su nombre.

Ejemplo

 __method_name 

¿Cómo definir un método privado en Python?

Cuando el programador quiere definir un método privado en Python, debe agregar un prefijo de guión bajo doble antes del nombre del método. Aquí hay un ejemplo:

Programa 1:

 class MyClass: def __init__(self): self.__private_method() def __private_method(self): print('This is a private method.') # Instantiate, the class my_obj = MyClass() 

Producción:

Método privado de Python

Explicación:

En el ejemplo anterior, hemos definido una clase llamada MyClass. Tiene un método privado llamado __private_method. Este método se llama desde el constructor de la clase (__init__) usando self.__private_method(). Dado que el método tiene un prefijo de guión bajo doble, es privado y no se puede acceder a él fuera de la clase.

Programa 2:

 class BankAccount: def __init__(self, account_number, balance): self.__account_number = account_number self.__balance = balance def deposit(self, amount): self.__balance += amount def withdraw(self, amount): if self.__balance >= amount: self.__balance -= amount else: print('Insufficient funds') def __display_balance(self): print('Account Balance:', self.__balance) def statement(self): print('Account Number:', self.__account_number) self.__display_balance() # create a BankAccount object my_account = BankAccount('123456789', 1000) # make some transactions my_account.deposit(500) my_account.withdraw(200) # print a statement my_account.statement() 

Producción:

Método privado de Python

Explicación:

El código proporcionado define una clase BankAccount con métodos para depositar y retirar fondos, mostrar el saldo de la cuenta e imprimir un estado de cuenta. Luego se crea una instancia de esta clase y se le realizan algunas transacciones, seguido de la impresión de una declaración.

Ventajas de los métodos privados en Python

    Encapsulación:Los métodos privados ayudan a lograr la encapsulación. Es un principio fundamental de la programación orientada a objetos. Al hacer que ciertos métodos sean privados, el programador puede controlar cómo se accede a la funcionalidad interna de la clase desde el código externo. Esto hace que la clase sea más segura y ayuda a prevenir cambios no deseados en el comportamiento de la clase.Reutilización del código:Se pueden utilizar métodos privados para implementar funciones internas que se pueden reutilizar dentro de la clase. Esto puede ayudar a reducir la duplicación de código y mejorar la capacidad de mantenimiento del código.Fácil depuración:Solo se puede acceder a los métodos privados dentro de la clase, lo que facilita la depuración del código al aislar el comportamiento de la clase.

Desventajas de los métodos privados en Python

    Acceso limitado:Sólo se puede acceder a los métodos privados dentro de la clase en la que están definidos. Esto significa que si el programador necesita acceder a la funcionalidad de un método privado desde fuera de la clase, entonces debe crear un método público que llame al método privado. Esto puede agregar complejidad adicional al código.Falsa sensación de seguridad:Los métodos privados de Python no son verdaderamente privados. Todavía es posible acceder a ellos fuera de la clase usando la sintaxis _classname__methodname(). Sin embargo, esto se considera una mala práctica y debe evitarse.Mayor complejidad:El uso de métodos privados puede aumentar la complejidad del código, haciéndolo más difícil de entender y mantener. Esto puede ser especialmente cierto si los métodos privados están mal documentados.

Conclusión

Los métodos privados en Python son una característica útil que puede ayudar a lograr la encapsulación y mejorar la capacidad de mantenimiento del código. Si bien tienen algunas desventajas, los beneficios de utilizar métodos privados en Python superan los inconvenientes.