Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Definindo Atributos Privados | Encapsulamento
Programação Orientada a Objetos em Python

bookDefinindo Atributos Privados

Deslize para mostrar o menu

Atributos privados representam o nível mais forte de proteção de dados no modelo de encapsulamento do Python. Ao utilizar dois underlines, eles ativam o mecanismo de name mangling do Python, transformando atributos sensíveis em identificadores quase inacessíveis. Isso proporciona uma proteção robusta contra interferências acidentais e contribui para a criação de projetos de classes seguros e profissionais.

123456789101112131415161718192021
class BankAccount: def __init__(self, owner, balance): self.owner = owner # Public attribute self.__balance = balance # Private attribute def deposit(self, amount): if amount > 0: self.__balance += amount print(f"Deposited {amount}. New balance: {self.__balance}") else: print("Deposit amount must be positive.") def withdraw(self, amount): if 0 < amount <= self.__balance: self.__balance -= amount print(f"Withdrew {amount}. New balance: {self.__balance}") else: print("Invalid withdrawal amount.") def get_balance(self): return self.__balance
copy
Note
Nota

Embora atributos privados possam ser acessados tecnicamente por meio de seus nomes modificados, fazer isso viola o encapsulamento e nunca deve ser utilizado em código de produção.

Um atributo privado como __balance em BankAccount é automaticamente renomeado para _BankAccount__balance por meio de name mangling. Isso dificulta o acesso direto e desencoraja o uso externo.

Atributos privados protegem estados sensíveis e garantem a interação apenas por meio de métodos públicos validados. Em classes como Wallet ou BankAccount, dados como saldo, PIN e histórico de transações permanecem privados, enquanto métodos como deposit(), withdraw() e authenticate() impõem regras e mantêm a segurança.

question mark

Qual é o principal objetivo dos atributos privados em Python?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 5. Capítulo 2
some-alt