python获取属性列表
时间: 2024-09-13 09:07:39 浏览: 42
Python中如何获取类属性的列表
5星 · 资源好评率100%
在Python中,获取对象的属性列表可以通过多种方式实现。常用的有使用内置函数`dir()`和`vars()`,以及通过反射获取特定类型属性。
1. `dir()`: 这个内置函数可以列出一个对象的所有属性和方法名称。当你对一个对象调用`dir()`时,它会返回一个列表,其中包含了对象的所有属性名、方法名以及内置的一些属性和方法。
2. `vars()`: 这个内置函数返回对象的`__dict__`属性,即对象的属性字典。它返回一个字典,包含了对象的属性名和属性值。需要注意的是,`vars()`通常用于类实例,但对于类本身调用`vars()`将返回类的`__dict__`,同样包含了类定义的属性和方法。
3. 反射(Reflection): 通过反射,你可以使用`hasattr()`, `getattr()`, `setattr()` 和 `delattr()`函数来检查、获取、设置和删除对象的属性。
这些方法的使用示例如下:
```python
class MyClass:
def __init__(self):
self.attribute1 = "value1"
self._attribute2 = "value2" # 默认属性
self.__attribute3 = "value3" # 私有属性
obj = MyClass()
# 使用dir()获取所有属性和方法名
print(dir(obj))
# 使用vars()获取对象的属性字典
print(vars(obj))
# 反射获取特定属性
print(hasattr(obj, 'attribute1')) # 检查是否有特定属性
print(getattr(obj, 'attribute1')) # 获取属性值
```
阅读全文