Python getattr 用法详解及示例
getattr
是 Python 内置的一个函数,可以用来获取对象的属性值。它的语法如下:
getattr(object, attribute, default)
其中:
– object
:表示要获取属性的对象;
– attribute
:表示要获取的属性名;
– default
:可选参数,当要获取的属性不存在时,返回的默认值。
下面我将给出三个示例来说明 getattr
的用法:
示例1:获取对象的属性值
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 25)
name_val = getattr(p, "name")
print(name_val) # 输出:"Alice"
在这个示例中,我们创建了一个 Person
类的实例 p
,并给它添加了 name
和 age
两个属性。然后,我们使用 getattr
函数获取 p
对象的 name
属性的值,并将其赋给变量 name_val
,最后打印出 name_val
的值,得到了属性 "Alice"
。
示例2:设置默认值
class Car:
def __init__(self, brand, color):
self.brand = brand
self.color = color
car = Car("BMW", "black")
price_val = getattr(car, "price", 100000) # 默认值为 100000
print(price_val) # 输出:100000
在这个示例中,我们创建了一个 Car
类的实例 car
,并给它添加了 brand
和 color
两个属性。然后,我们使用 getattr
函数获取 car
对象的 price
属性的值,但是 car
实例并没有 price
属性,所以 getattr
函数返回了默认值 100000,最后打印出 price_val
的值得到了属性 100000。
示例3:获取对象的方法
class Calculator:
def add(self, a, b):
return a + b
def subtract(self, a, b):
return a - b
calc = Calculator()
add_func = getattr(calc, "add") # 获取 add 方法
result = add_func(3, 5) # 调用 add 方法
print(result) # 输出:8
在这个示例中,我们创建了一个 Calculator
类的实例 calc
,并给它添加了 add
和 subtract
两个方法。然后,我们使用 getattr
函数获取 calc
对象的 add
方法,并将其赋给变量 add_func
。接着,我们通过调用 add_func
方法,传入参数 3
和 5
,得到计算结果 8
。
以上就是使用 getattr
函数的三个示例。通过 getattr
函数,我们可以方便地获取对象的属性值,甚至获取对象的方法,并且可以设置默认值以应对属性不存在的情况。