Função built-in Python setattr()

Da documentação do Python 3

Este é o correspondente de getattr(). Os argumentos são um objeto, uma string e um valor arbitrário. A string pode nomear um atributo existente ou um novo atributo. A função atribui o valor ao atributo, desde que o objeto o permita. Por exemplo, setattr(x, 'foobar', 123) é equivalente a x.foobar = 123.

Introdução

A função setattr() é uma função built-in do Python que permite definir o valor de um atributo de um objeto. Ela aceita três argumentos: o objeto, o nome do atributo (como uma string) e o valor que você deseja atribuir a esse atributo.

Isso é particularmente útil quando o nome do atributo é determinado dinamicamente em tempo de execução. Em vez de usar a notação de ponto (object.attribute = value), que exige que você conheça o nome do atributo antecipadamente, setattr() permite que você use uma variável.

Exemplos

Veja como você pode usar setattr() para adicionar ou modificar atributos:

class Person:
    name = "John"

p = Person()

# Define o atributo 'age' como 30
setattr(p, 'age', 30)

print(p.age)

# Altera o atributo 'name'
setattr(p, 'name', 'Jane')
print(p.name)
30
Jane