property() Descritor de atributo

Última atualização: 2026-09-22

property() Descritor de atributo

property(fget, fset, fdel, doc) encapsula métodos em um objeto acessível como um atributo; também pode ser usado com o decorador @property.

CategoriaFunções internas
TipoFunção interna
Versão do Pythonall

📝 Sintaxe

property(fget[, fset[, fdel[, doc]]])

⚙️ Parâmetros

fget OpcionalFunction for getting the attribute value (getter).(Padrão:None)
fset OpcionalFunction for setting the attribute value (setter).(Padrão:None)
fdel OpcionalFunction for deleting the attribute (deleter).(Padrão:None)
doc OpcionalDocstring for the property.(Padrão:None)

Retorno:A property object, a data descriptor accessed like a normal attribute.

▶ Exemplo

Edite o código, clique em Executar e veja o resultado no painel de saída:

Saída:

10
Mais estudos de caso em breve — aguarde.

❓ Perguntas frequentes

QPara que serve property?
ATransforma um método em acesso a atributo: obj.x dispara a lógica do getter sem parênteses, e você pode validar na atribuição (via setter), criando 'propriedades calculadas' e encapsulamento.
QComo @property e @x.setter trabalham juntos?
A@property define a lógica de leitura e @x.setter a validação de atribuição, ex.: c.x = 10 passa pelo setter; se só @property for definido sem setter, a atribuição levanta AttributeError: can't set attribute.
QQual é a diferença entre property e um método comum?
AO modo de acesso difere (obj.x em vez de obj.x()), e property pode interceptar as três operações de leitura, atribuição e exclusão — indicado para encapsular e validar campos internos.
QUma propriedade calculada armazena em cache o resultado?
ANão, acessar obj.x reexecuta o getter toda vez; para armazenar em cache você deve implementar (ex.: functools.cached_property).
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%