getattr
是 Python 内置函数之一,用于获取对象的属性值。
函数语法
getattr(object, name[, default])
参数:
object
:需要获取属性的对象。name
:属性的名称,以字符串形式提供。default
(可选):如果属性不存在,则返回的默认值。如果不提供默认值并且属性不存在,会引发 AttributeError 异常。
示例代码
下面是一些示例代码,展示了不同情况下 getattr
函数的使用方法和运行结果:
示例 1:获取现有属性的值
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 30)
name = getattr(person, "name")
print(name)
运行结果:
Alice
示例 2:获取不存在的属性值并提供默认值
occupation = getattr(person, "occupation", "Unknown")
print(occupation)
运行结果:
Unknown
示例 3:不提供默认值,属性不存在时引发 AttributeError
address = getattr(person, "address")
运行结果:
AttributeError: 'Person' object has no attribute 'address'
示例 4:使用 getattr
动态调用方法
class Calculator:
def add(self, a, b):
return a + b
calc = Calculator()
operation = "add"
method = getattr(calc, operation)
result = method(5, 3)
print(result)
运行结果:
8
总结
getattr
函数允许你在运行时根据属性的字符串名来访问对象的属性值。它对于动态地获取属性或调用方法非常有用。在使用时,要注意如果属性不存在并且没有提供默认值,会引发 AttributeError 异常。通过 getattr
,你可以写出更灵活的代码,能够适应不同情况下的对象属性访问需求。