内置函数getattr()
用于获取指定对象的属性值。在缺少属性的情况下,它返回默认值。
**getattr(object, name[, default])** #Where object**,**name shows object name and attribute name respectively.
句法也像
object.name
getattr()
参数:
在参数的情况下,我们可以从控制台直接在程序中输入属性名。我们还可以设置一些默认值,以防属性丢失,这使我们能够完成一些不完整的数据。
参数 | 描述 | 必需/可选 |
---|---|---|
目标 | 要返回其命名属性值的对象 | 需要 |
名字 | 包含属性名称的字符串 | 需要 |
系统默认值 | 找不到命名属性时返回的值 | 可选择的 |
getattr()
返回值
getattr()
函数的默认值选项有助于访问不属于该对象的任何属性。
| 投入 | 返回值 | | 属性 | 给定对象的命名属性的值 | | 无属性 | 缺省值 | | 如果找不到属性并且没有默认值 | AttributeError exception(属性错误异常) |
Python 中getattr()
方法的示例
示例getattr()
在 Python 中是如何工作的?
class Person:
age = 30
name = "James"
pers = Person()
print('The age is:', getattr(pers, "age"))
print('The age is:', pers.age)
输出:
The age is: 30
The age is: 30
示例 2:找不到命名属性时的getattr()
class Person:
age = 30
name = "James"
pers = Person()
# when default value is provided
print('The sex is:', getattr(pers, 'sex', 'Male'))
# when no default value is provided
print('The sex is:', getattr(pers, 'sex'))
输出:
The sex is: Male
AttributeError: 'Person' object has no attribute 'sex'
示例 3:getattr()
引发属性错误
class GfG :
name = "GeeksforGeeks"
age = 24
# initializing object
obj = GfG()
# use of getattr
print("The name is " + getattr(obj,'name'))
# use of getattr with default
print("Description is " + getattr(obj, 'description' , 'CS Portal'))
# use of getattr without default
print("Motto is " + getattr(obj, 'motto'))
输出:
The name is GeeksforGeeks
Description is CS Portal
AttributeError: GfG instance has no attribute 'motto'