setattr() Define atributo
Última atualização: 2026-09-22
setattr() Define atributo
setattr(obj, name, value) define o atributo name de obj como value; equivalente a obj.name = value.
| Categoria | Funções internas |
|---|---|
| Tipo | Função interna |
| Versão do Python | all |
📝 Sintaxe
setattr(object, name, value)
⚙️ Parâmetros
| object Obrigatório | The object whose attribute is set. |
|---|---|
| name Obrigatório | The attribute name (string). |
| value Obrigatório | The value to assign. |
Retorno:None; the attribute is set in place.
💥 Exceções
AttributeError— Raised when the attribute cannot be set (read-only or restricted by __slots__).
▶ Exemplo
Edite o código, clique em Executar e veja o resultado no painel de saída:
Saída:
100
🏷️ Funções internas relacionadas
💡 Casos relacionados
Mais estudos de caso em breve — aguarde.
❓ Perguntas frequentes
QHá diferença entre setattr(obj, 'x', 100) e obj.x = 100?
ASão funcionalmente equivalentes. A vantagem de setattr é que o nome do atributo pode ser uma variável ou uma string calculada dinamicamente, adequado à programação reflexiva.
QQuais são os usos típicos de setattr?
ACarregar config / mapear objetos: for k, v in config.items(): setattr(obj, k, v), convertendo um dicionário em atributos de objeto em lote.
QO que acontece ao mirar um atributo somente leitura?
ALevanta AttributeError: can't set attribute, por exemplo atribuindo a uma property que só define o getter.
QUma classe com __slots__ aceita setattr de qualquer atributo?
ANão — apenas os nomes declarados em __slots__ podem ser atribuídos; atribuir qualquer outro nome levanta AttributeError.