Python getattr()

No nosso tutorial anterior, aprendemos sobre o comando do sistema Python. Neste tutorial, discutiremos sobre a função getattr() do Python.

Função getattr() do Python

A função getattr() do Python é usada para obter o valor de um atributo de um objeto e, se nenhum atributo desse objeto for encontrado, o valor padrão é retornado. Basicamente, retornar o valor padrão é a principal razão pela qual você pode precisar usar a função getattr() do Python. Portanto, antes de começarmos o tutorial, vamos ver a sintaxe básica da função getattr() do Python.

getattr(object_name, attribute_name[, default_value])

Exemplo de getattr() do Python

Nesta seção, aprenderemos como acessar os valores dos atributos de um objeto usando a função getattr(). Suponha que estejamos escrevendo uma classe chamada Student. Os atributos básicos da classe Student são student_id e student_name. Agora vamos criar um objeto da classe Student e acessar seu atributo.

class Student:
    student_id=""
    student_name=""

    # construtor inicial para definir os valores
    def __init__(self):
        self.student_id = "101"
        self.student_name = "Adam Lam"

student = Student()
# obter valores do atributo usando a função getattr()
print('\ngetattr : name of the student is =', getattr(student, "student_name"))

# mas você poderia acessar assim
print('traditional: name of the student is =', student.student_name)

Valor padrão do getattr() do Python

Nesta seção, usaremos a opção de valor padrão do getattr() do Python. Se você deseja acessar qualquer atributo que não pertença ao objeto, então você pode usar a opção de valor padrão do getattr(). Por exemplo, se o atributo student_cgpa não estiver presente para o aluno, então mostrará um valor padrão. No exemplo a seguir, veremos um exemplo de valor padrão. Também aprenderemos o que acontece se o atributo não estiver presente e não estivermos usando a opção de valor padrão.

class Student:
    student_id=""
    student_name=""

    # construtor inicial para definir os valores
    def __init__(self):
        self.student_id = "101"
        self.student_name = "Adam Lam"

student = Student()
# usando a opção de valor padrão
print('Using default value : Cgpa of the student is =', getattr(student, "student_cgpa", 3.00))
# sem usar o valor padrão
try:
    print('Without default value : Cgpa of the student is =', getattr(student, "student_cgpa"))
except AttributeError:
    print("Attribute is not found :(")

Portanto, após executar o código, você obterá uma saída como esta

Using default value : Cgpa of the student is = 3.0
Attribute is not found :(

Observe que um AttributeError é gerado quando o valor padrão não é fornecido ao chamar a função getattr().

Motivo para usar a função getattr() do Python

A principal razão para usar `getattr()` em Python é que podemos obter o valor usando o nome do atributo como String. Assim, você pode inserir manualmente o nome do atributo em seu programa a partir do console. Novamente, se um atributo não for encontrado, você pode definir algum valor padrão, o que nos permite completar alguns de nossos dados incompletos. Além disso, se a sua classe Student estiver em andamento, podemos usar a função `getattr()` para completar outro código. Uma vez que a classe Student tenha esse atributo, ele o pegará automaticamente e não usará o valor padrão. Então, é basicamente isso sobre a função `getattr()` em Python. Se tiver alguma dúvida sobre isso, por favor, use a caixa de comentários abaixo. Referência: Documentação Oficial

Source:
https://www.digitalocean.com/community/tutorials/python-getattr