Atributos de classe e Atributos estáticos são a mesma coisa ?
Atributos de classe e Atributos estáticos são a mesma coisa ?
Olá Isabela, tudo bem com você?
Quando temos um atributo definido com um valor padrão dentro de uma classe e fora de um método, esse atributo será considerado um atributo de classe ou um atributo estático, os dois nomes fazem referência ao mesmo tipo de atributo.
Abaixo um exemplo de atributo de classe (atributo estático), um exemplo hipotético de classe.
class Cpf:
numero_de_digitos = 11
def __init__(self, cpf, nome):
self.cpf = cpf
self.nome = nome
def tamanho(self):
return print('O CPF deve ser informado com: {} dígitos'.format(Cpf.numero_de_digitos))
obj_cpf_1 = Cpf(23869894024, 'Ana')
obj_cpf_1.tamanho()
obj_cpf_2 = Cpf(42940675007, 'Paula')
obj_cpf_2.tamanho()
Resultado
O CPF deve ser informado com: 11 dígitos
O CPF deve ser informado com: 11 dígitos
Note que temos o atributo numero_de_digitos
definido com o valor 11, ele será um atributo de classe, assim todos os objetos criados com essa classe receberão o mesmo valor, não sendo necessário informarmos ele no momento da criação do objeto.
Por ser um atributo de classe note que a sintaxe para uso do atributo é diferente, ficando da seguinte forma < nome_da_classe>.< nome_do_atributo>; Cpf.numero_de_digitos
.
Em caso de dúvidas, estou à disposição.
Abraços e bons estudos.