ExpertiDict

Python · Essencial · Português · Técnico

atributo de classe

/ataˈɾibutu dʒi ˈklasi/substantivo

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 += 1

Exemplos

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

Veja também

Todos os termos de Python