Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/python-builtin-functions-getattr.html

python 用于获取对象的属性值的内置函数 getattr 详解

Python 内置函数 Python 内置函数


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,你可以写出更灵活的代码,能够适应不同情况下的对象属性访问需求。