python中__dict__
时间: 2023-07-31 11:10:09 浏览: 114
__dict__是Python中的一个特殊属性,它是一个字典(dictionary),用于存储对象的属性和方法。每个对象都有一个__dict__属性,它记录了对象的所有属性和方法,并以键值对的形式存储。
当我们通过点运算符(.)或getattr()函数访问对象的属性时,实际上是在__dict__字典中查找对应的键值对。如果找到了对应的键,就返回相应的值;如果没有找到,会引发AttributeError异常。
下面是一个简单的例子,说明了__dict__的用法:
```python
class MyClass:
def __init__(self):
self.name = "John"
self.age = 25
obj = MyClass()
print(obj.__dict__) # {'name': 'John', 'age': 25}
print(obj.name) # John
print(obj.__dict__["age"]) # 25
```
在上面的例子中,我们创建了一个名为MyClass的类,并在其构造函数中初始化了两个属性name和age。创建了一个obj对象后,我们可以通过obj.__dict__访问到对象的属性字典,也可以通过obj.name或者obj.__dict__["age"]直接访问属性的值。
需要注意的是,__dict__只能访问到实例属性和方法,而不能访问到类属性和方法。类属性和方法存储在类的__dict__属性中。
相关问题
python __dict__
Python的__dict__属性是一个字典,它包含了一个对象的命名空间。在Python中,一些常用的数据类型如int、list和dict是没有__dict__属性的。这是因为它们只是用来做数据容器的,不需要保存额外的命名空间。如果尝试访问这些数据类型的__dict__属性,会引发AttributeError异常,提示对象没有__dict__属性。
python类__dict__
在 Python 中,`__dict__` 是每个对象(包括类)内部的一个特殊属性,它是一个字典,用于存储对象的属性和方法。当你创建一个类并给它添加属性时,这些属性会自动被添加到 `__dict__` 中。`__dict__` 的键通常是属性名,值则是对应的属性值。
当你访问一个对象的属性时,Python 实际上是查找 `__dict__` 字典。如果找到了,就返回对应值;如果 `__dict__` 中没有找到,Python 会继续向上搜索其父类的 `__dict__`,直到找到或到达 `object` 类(所有类的基类)为止。
举个例子:
```python
class MyClass:
def __init__(self):
self.my_attribute = 'hello'
# 创建对象并查看它的 __dict__
my_instance = MyClass()
print(my_instance.__dict__) # 输出:{'my_attribute': 'hello'}
```
阅读全文