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()函数的用法,希望对大家有所帮助。
