Python getattr()函数
getattr()
函数是 Python 内置函数之一,用于获取一个对象的指定属性值。
getattr()函数语法
getattr()
函数的语法如下:
getattr(object, name[, default])
其中:
object
表示要获取属性的对象;name
表示要获取的属性的名称;default
是可选参数,表示属性不存在时的默认返回值;
注意,当使用getattr()
函数获取属性时,如果属性不存在,会触发AttributeError
异常,除非提供了default
参数作为备选返回值。
getattr()函数示例
下面是一些使用getattr()
函数的示例:
class MyClass:
def __init__(self):
self.x = 123
def myprint(self,msg):
print(msg)
obj = MyClass()
# 获取 obj.x 的值
val = getattr(obj, 'x')
print(val) # 输出 123
# 获取 obj.myprint
val = getattr(obj,'myprint')
#调用 obj.myprint 函数
val("hello world")
# 获取obj.myprint123 ,属性不存在,缺省值为 print
val = getattr(obj,'myprint123',print)
val("3.14159")
# 获取 obj.y 的值,如果不存在则返回默认值 0
val = getattr(obj, 'y', 0)
print(val) # 输出 0
# 获取 obj.y 的值,因为不存在,且未定义缺省值
# 将触发 AttributeError
val = getattr(obj, 'y')