您的位置:

25. Python getattr()

Python getattr()

更新:

内置函数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'