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:
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:
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
Desavantatges dels mètodes privats en Python
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.