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屬性。