getattr()方法返回對象的命名屬性的值。如果找不到,它將返回提供給該函數(shù)的默認(rèn)值。
getattr()方法的語法為:
getattr(object, name[, default])
上面的語法等效于:
object.name
getattr()方法采用多個參數(shù):
object -要返回其命名屬性值的對象
name -包含屬性名稱的字符串
default(可選) -找不到命名屬性時返回的值
getattr()方法返回:
給定對象的命名屬性的值
default,如果找不到命名屬性
AttributeError異常,如果未找到已命名的屬性且未定義默認(rèn)值
class Person:
age = 23
name = "Adam"
person = Person()
print('年齡是:', getattr(person, "age"))
print('年齡是:', person.age)運行該程序時,輸出為:
年齡是: 23 年齡是: 23
class Person:
age = 23
name = "Adam"
person = Person()
# 當(dāng)提供默認(rèn)值時
print('性別是:', getattr(person, 'sex', 'Male'))
# 當(dāng)沒有提供默認(rèn)值時
print('性別是:', getattr(person, 'sex'))運行該程序時,輸出為:
性別是: Male AttributeError: 'Person' object has no attribute 'sex'
已命名的屬性sex不存在于Person類中。因此,當(dāng)使用默認(rèn)值Male調(diào)用getattr()方法時,它將返回Male。
但是,如果我們不提供任何默認(rèn)值,則在找不到命名屬性sex時,會拋出一個AttributeError說法,即該對象沒有sex屬性。