Introdução
Em Python, um método privado é um método que não se destina a ser usado fora da classe na qual está definido. Esses métodos são indicados por um prefixo de sublinhado duplo (__) antes de seu nome e só podem ser acessados dentro da classe onde estão definidos. Neste artigo, discutiremos o conceito de métodos privados em Python, suas vantagens e desvantagens e como usá-los com exemplos.
O que é um método privado em Python?
Um método privado é um método que não se destina a ser usado fora da classe na qual está definido. Esses métodos são usados para implementar funcionalidades internas dentro da classe. Eles não devem ser usados por código externo. Em Python, os métodos privados são indicados por um prefixo de sublinhado duplo antes de seu nome.
Exemplo
__method_name
Como definir um método privado em Python?
Quando o programador deseja definir um método privado em Python, ele precisa adicionar um prefixo de sublinhado duplo antes do nome do método. Aqui está um exemplo:
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()
Saída:
Explicação:
No exemplo acima, definimos uma classe chamada MyClass. Possui um método privado chamado __private_method. Este método é chamado a partir do construtor da classe (__init__) usando self.__private_method(). Como o método possui um prefixo de sublinhado duplo, ele é privado e não pode ser acessado fora da 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()
Saída:
Explicação:
O código fornecido define uma classe BankAccount com métodos para depositar e sacar fundos, exibir o saldo da conta e imprimir um extrato da conta. Uma instância desta classe é então criada e algumas transações são feitas nela, seguidas da impressão de um extrato.
Vantagens dos métodos privados em Python
Desvantagens dos métodos privados em Python
Conclusão
Os métodos privados em Python são um recurso útil que pode ajudar a obter o encapsulamento e melhorar a capacidade de manutenção do código. Embora tenham algumas desvantagens, os benefícios de usar métodos privados em Python superam as desvantagens.