logo

Mètode privat Python

Introducció

A Python, un mètode privat és un mètode que no està pensat per utilitzar-se fora de la classe en què es defineix. Aquests mètodes es denoten amb un doble prefix de guió baix (__) abans del seu nom, i només es pot accedir a ells dins de la classe on estan definits. En aquest article, parlarem del concepte de mètodes privats a Python, els seus avantatges i desavantatges i com utilitzar-los amb exemples.

Què és un mètode privat a Python?

Un mètode privat és un mètode que no està pensat per ser utilitzat fora de la classe en la qual està definit. Aquests mètodes s'utilitzen per implementar la funcionalitat interna dins de la classe. Aquests no estan destinats a ser utilitzats per codi extern. A Python, els mètodes privats es denoten amb un doble prefix de guió baix abans del seu nom.

Exemple

 __method_name 

Com definir un mètode privat a Python?

Quan el programador vol definir un mètode privat a Python, el programador ha d'afegir un prefix de guió baix doble abans del nom del mètode. Aquí teniu un exemple:

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() 

Sortida:

Mètode privat Python

Explicació:

A l'exemple anterior, hem definit una classe anomenada MyClass. Té un mètode privat anomenat __private_method. Aquest mètode s'anomena des del constructor de classes (__init__) mitjançant self.__private_method(). Com que el mètode té un prefix de guió baix doble, és privat i no es pot accedir fora de la classe.

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() 

Sortida:

Mètode privat Python

Explicació:

El codi proporcionat defineix una classe BankAccount amb mètodes per dipositar i retirar fons, mostrar el saldo del compte i imprimir un extracte del compte. Aleshores es crea una instància d'aquesta classe i s'hi fan algunes transaccions, seguida de la impressió d'una declaració.

Avantatges dels mètodes privats en Python

    Encapsulació:Els mètodes privats ajuden a aconseguir l'encapsulació. És un principi fonamental de la programació orientada a objectes. En fer privats determinats mètodes, el programador pot controlar com s'accedeix a la funcionalitat interna de la classe des del codi extern. Això fa que la classe sigui més segura i ajuda a prevenir canvis no desitjats en el comportament de la classe.Reutilitzabilitat del codi:Els mètodes privats es poden utilitzar per implementar funcionalitats internes que es poden reutilitzar dins de la classe. Això pot ajudar a reduir la duplicació del codi i millorar el manteniment del codi.Depuració fàcil:Els mètodes privats només són accessibles dins de la classe, cosa que facilita la depuració del codi aïllant el comportament de la classe.

Desavantatges dels mètodes privats en Python

    Accés limitat:Els mètodes privats només són accessibles dins de la classe en què es defineixen. Això vol dir que si el programador necessita accedir a la funcionalitat d'un mètode privat des de fora de la classe, haurà de crear un mètode públic que cridi al mètode privat. Això pot afegir complexitat addicional al codi.Fals sentit de seguretat:Els mètodes privats de Python no són realment privats. Encara és possible accedir-hi fora de la classe utilitzant la sintaxi _classname__methodname(). Tanmateix, això es considera una mala pràctica i s'ha d'evitar.Augment de la complexitat:L'ús de mètodes privats pot augmentar la complexitat del codi, fent-lo més difícil d'entendre i mantenir. Això pot ser especialment cert si els mètodes privats estan poc documentats.

Conclusió

Els mètodes privats de Python són una característica útil que pot ajudar a aconseguir l'encapsulació i millorar el manteniment del codi. Tot i que tenen alguns desavantatges, els avantatges d'utilitzar mètodes privats a Python superen els inconvenients.