Python getattr 用法详解及示例

Python getattr 用法详解及示例

getattrPython 内置的一个函数,可以用来获取对象的属性值。它的语法如下:

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,并给它添加了 nameage 两个属性。然后,我们使用 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,并给它添加了 brandcolor 两个属性。然后,我们使用 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,并给它添加了 addsubtract 两个方法。然后,我们使用 getattr 函数获取 calc 对象的 add 方法,并将其赋给变量 add_func。接着,我们通过调用 add_func 方法,传入参数 35,得到计算结果 8

以上就是使用 getattr 函数的三个示例。通过 getattr 函数,我们可以方便地获取对象的属性值,甚至获取对象的方法,并且可以设置默认值以应对属性不存在的情况。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程