📜  python 获取对象的属性 - Python (1)

📅  最后修改于: 2023-12-03 15:04:18.348000             🧑  作者: Mango

Python 获取对象的属性

在Python中,可以使用内置函数getattr()来获取一个对象(如模块、类、实例等)的属性。getattr()函数接受两个参数,第一个参数是要获取属性的对象,第二个参数是属性的名称。如果该属性不存在,则会抛出AttributeError异常。

以下是一个简单的示例,展示了如何使用getattr()函数获取模块的属性:

import datetime

attr_name = 'date'
attr_value = getattr(datetime, attr_name)
print(attr_value)  # 2022-01-24

为了防止抛出AttributeError异常,我们可以指定一个默认值作为getattr()函数的第三个参数:

import datetime

# 尝试获取不存在的属性,返回一个默认值
attr_name = 'foo'
attr_value = getattr(datetime, attr_name, 'default')
print(attr_value)  # default

除了使用getattr()函数之外,还可以使用以下内置函数来获取对象的属性:

  • hasattr():判断对象是否有指定的属性;
  • setattr():设置对象的属性;
  • delattr():删除对象的属性。

例如:

class MyClass:
    def __init__(self, value):
        self.value = value

# 使用hasattr()函数判断类实例是否有指定属性
my_instance = MyClass(10)
print(hasattr(my_instance, 'value'))  # True

# 使用setattr()函数设置属性
setattr(my_instance, 'new_value', 20)
print(my_instance.new_value)  # 20

# 使用delattr()函数删除属性
delattr(my_instance, 'value')
print(hasattr(my_instance, 'value'))  # False

总之,在Python中获取对象的属性非常简单,只需要使用内置函数getattr()或其他相应的函数即可。