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.
| Categoria | Funções internas |
|---|---|
| Tipo | Função interna |
| Versão do Python | all |
📝 Sintaxe
property(fget[, fset[, fdel[, doc]]])
⚙️ Parâmetros
| fget Opcional | Function for getting the attribute value (getter).(Padrão:None) |
|---|---|
| fset Opcional | Function for setting the attribute value (setter).(Padrão:None) |
| fdel Opcional | Function for deleting the attribute (deleter).(Padrão:None) |
| doc Opcional | Docstring 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
🏷️ Funções internas relacionadas
💡 Casos relacionados
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).