欢迎访问宙启技术站
智能推送

Python中的getattr()函数:获取对象属性或方法

发布时间:2023-06-21 09:32:07

Python中的getattr()函数可以用来获取对象的属性或方法,它属于Python内置函数之一,其语法格式为:

getattr(object, name[, default])

其中,object表示对象;name表示属性或方法的名称;default为可选参数,表示当getattr()无法获取指定属性或方法时返回的默认值。

getattr()函数的用法:

1. 获取对象的属性

当我们需要获取一个对象的某个属性时,可以使用getattr()函数。例如,我们可以通过getattr()函数获取一个对象的某个属性,如下所示:

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age

stu = Student("小明", 18)

# 获取stu对象的name属性
name = getattr(stu, "name")
print(name)  # 输出:小明

# 获取stu对象的age属性
age = getattr(stu, "age")
print(age)  # 输出:18

2. 获取对象的方法

如果我们需要获取一个对象的方法,也可以使用getattr()函数。例如,如下代码可以获取一个对象的方法,并调用该方法:

class Person:
    def __init__(self, name):
        self.name = name

    def say_hello(self):
        print("Hello, %s!" % self.name)

p = Person("Tom")
# 获取p对象的方法
say_hello = getattr(p, "say_hello")
# 调用方法
say_hello()

# 输出:Hello, Tom!

3. 获取对象指定属性的默认值

在获取对象的属性时,如果该属性不存在,getattr()函数会抛出AttributeError异常。如果我们想要在属性不存在时返回默认值,可以使用getattr()函数的第三个参数。例如,如下代码可以获取一个对象的name属性,如果该属性不存在,则返回默认值:

class Person:
    def __init__(self, name):
        self.name = name

p = Person("Tom")
# 获取p对象的name属性,默认值为None
name = getattr(p, "name", None)
print(name)

# 获取p对象的age属性,默认值为18
age = getattr(p, "age", 18)
print(age)

以上就是getattr()函数的用法,希望对大家有所帮助。