Baixe nossa apostila e tenha todo o conteúdo em PDF:
Apostila Python Progressivo
Atributos Gerais de Classe
Podemos criar milhões de objetos, fácil e rapidamente.
E cada um deles terá seus métodos e atributos próprios e únicos.
Porém, muitas vezes é interessante ter informações gerais, ou seja, um mesmo dado, um mesmo atributo presente em todos os objetos.
Veja bem: uma única variável, presente e passível de ser acessada e modificada por todos os objetos. Não é cada objeto ter sua variável, isso já sabemos como fazer.
Atributos de classes são aquelas variáveis que são únicas, só tem ela, e ela está presente em todos os objetos.
Como usar Atributos de Classe
Vamos usar a variável count na classe Funcionario.Ela é definida na classe inicialmente com valor 0, pois ainda não foi contratado nenhum funcionário.
Vamos armazenar os objetos (funcionários), numa lista func.
A ideia é: sempre que instanciarmos um funcionário, somamos 1 ao contador count.
Para fazermos isso no atributo de classe (e não no atributo de cada objeto), não usamos self.
Usamos a variável: Funcionario.count
Ao usar assim, todo objeto vai agir e somar 1, quando for criado, nesse atributo geral, de classe.
Veja bem:
- self.count -> vai atuar em um objeto, especificamente
- Funcionario.count -> todos vão atuar numa mesma variável, o atributo de classe
Veja nosso código onde você pode ir contratando quantos funcionários quiser.
Note que sempre que criamos um funcionário, incrementamos o contador e mostramos o total de funcionários existentes na empresa:
class Funcionario: count = 0 def __init__(self, nome): self.__nome = nome print(nome, "contratado!") Funcionario.count +=1 print("Numero de funcionarios:", Funcionario.count) op=1 func = [] while op: op=int(input("0. Sair\n1. Criar funcionario\n")) if op==1: nome = input("Nome: ") func.append( Funcionario(nome) )
Vale ressaltar que é possível acessar o atributo count mesmo que você não tenha instanciado objeto algum, ok?
Leia: Como se tornar um programador Python profissional
Nenhum comentário:
Postar um comentário