PythonPOObasico

Atributo de classe

Em sistemas reais, muitas vezes você precisa armazenar informações que são comuns a todos os objetos de uma classe, como o nome da empresa em que todos os funcionários trabalham. Em vez de repetir esse dado em cada funcionário, você usa um atributo de classe, que é compartilhado. Isso economiza memória e facilita mudanças futuras — se a empresa mudar de nome, você altera em um só lugar.

O PROBLEMA

Classe Funcionario com atributo empresa='TechCorp' e instância nome, salario.

EXEMPLO

Funcionario.empresa → TechCorp

SOBRE O CONCEITO

Atributos de classe pertencem à classe em si, não a uma instância específica. Eles são definidos diretamente no corpo da classe, como em empresa = 'TechCorp'. Cada instância criada acessa esse mesmo valor, a menos que você crie um atributo de instância com o mesmo nome. O erro comum é tentar modificar o atributo de classe via instância, como funcionario1.empresa = 'NovaEmpresa'. Isso cria um atributo de instância que 'esconde' o de classe, e as outras instâncias continuam vendo o original. Para alterar o valor compartilhado, você deve modificar diretamente na classe, com Funcionario.empresa = 'NovaEmpresa'.

RESOLUÇÃO

Mais exercícios de POO

PYPOI2I · IntermediárioHerança simplesPYPOI1I · IntermediárioProperty e setterPYPOI5I · IntermediárioClasse abstrataPYPOO7B · BásicoMétodo estático
Ver todos os exercícios de Python