Python · Essencial · Português · Técnico
atributo de classe
Variável definida no corpo da classe, compartilhada por todas as instâncias. Se um objeto atribui o mesmo nome, cria um atributo próprio que esconde o da classe.
Onde usar
Útil para constantes e contadores da classe; vira armadilha quando guarda uma lista mutável que todas as instâncias passam a compartilhar sem querer. Em code review, é motivo frequente de comentário.
Em código
class A:
total = 0
itens = [] # compartilhada!
a, b = A(), A()
a.itens.append(1)
print(b.itens) # [1]
A.total += 1Exemplos
Essa lista é atributo de classe, então todas as instâncias compartilham.
Pra constante da classe, atributo de classe resolve bem.
Cuidado
Não coloque lista ou dict no corpo da classe esperando uma cópia por objeto; inicialize no __init__.
Sinônimos
variável de classe
Antônimos
atributo de instância