getattr()函数是 Python 内置函数之一,用于获取一个对象的指定属性值。

函数语法

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')