English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O método getattr() retorna o valor da propriedade nomeada do objeto. Se não encontrar, ele retornará o valor padrão fornecido para a função.
A sintaxe do getattr() é:
getattr(object, name[, default])
A sintaxe acima é equivalente a:
object.name
O método getattr() aceita vários parâmetros:
object -O objeto que se deseja retornar o valor da propriedade nomeada
name -String que contém o nome da propriedade
default (opcional) -Retorno ao encontrar a propriedade nomeada
O getattr() retorna:
O valor da propriedade nomeada do objeto dado
default, se não encontrar a propriedade nomeada
Exceção AttributeError, se não encontrar a propriedade nomeada e não definir um valor padrão
class Person: age = 23 name = "Adam" person = Person() print('A idade é:', getattr(person, "age")) print('A idade é:', person.age)
Quando o programa é executado, a saída será:
A idade é: 23 A idade é: 23
class Person: age = 23 name = "Adam" person = Person() # Quando fornecer um valor padrão print('O sexo é:', getattr(person, 'sex', 'Male')) # Quando não fornecer um valor padrão print('O sexo é:', getattr(person, 'sex'))
Quando o programa é executado, a saída será:
O sexo é: Male AttributeError: 'Person' object has no attribute 'sex'
A propriedade nomeada 'sex' não existe na classe Person. Portanto, ao usar o valor padrão Male na chamada do método getattr(), ele retornará Male.
Mas, se não fornecermos nenhum valor padrão, uma vez que não encontrar a propriedade nomeada 'sex', será lançada uma exceção AttributeError, ou seja, o objeto não possui a propriedade 'sex'.