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

Python中的getattr函数 - 如何获取对象的属性值

发布时间:2023-07-06 04:13:37

在Python中,getattr函数是一个内置函数,用于获取一个对象的属性值。

getattr的语法如下:

getattr(object, name[, default])

参数说明:

- object:表示要获取属性值的对象。

- name:表示要获取的属性的名称。

- default:可选参数,表示如果属性不存在时返回的默认值。

下面是关于getattr函数的一些常用用法和示例:

1. 获取普通对象的属性值:

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

p = Person("Alice", 25)

name_value = getattr(p, "name")
print(name_value)  # 输出:Alice

age_value = getattr(p, "age")
print(age_value)  # 输出:25

2. 获取模块中的属性值:

import math

pi_value = getattr(math, "pi")
print(pi_value)  # 输出:3.141592653589793

3. 获取字典对象的属性值:

data = {"key1": "value1", "key2": "value2"}

key1_value = getattr(data, "key1")  # 报错,字典对象没有属性key1

key1_value = getattr(data, "key1", "default_value")
print(key1_value)  # 输出:default_value

4. 获取对象的方法:

class Calculator:
    def add(self, x, y):
        return x + y

c = Calculator()

add_method = getattr(c, "add")
result = add_method(2, 3)
print(result)  # 输出:5

5. 属性不存在时的处理:

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

p = Person("Alice", 25)

address_value = getattr(p, "address", None)
print(address_value)  # 输出:None

address_value = getattr(p, "address", "unknown")
print(address_value)  # 输出:unknown

总结起来,getattr函数是一个非常有用的函数,可以方便地获取对象的属性值,包括普通属性、模块属性和字典属性等。另外,还可以使用getattr函数获取对象的方法,并直接调用。如果属性不存在,可以通过设置默认值来避免报错。