获取

  • 每个对象都有一个dict属性,它是一个字典类型,用于保存对象的所有属性和方法
  1. class MyClass:
  2. def __init__(self, x, y):
  3. self.x = x
  4. self.y = y
  5. obj = MyClass(1, 2)
  6. print(obj.__dict__)

执行上述代码,输出结果为:

  1. {'x': 1, 'y': 2}

通过dict动态添加属性和方法

在Python中,我们可以通过dict动态地添加属性和方法。我们可以通过以下方式向对象的dict属性中添加属性:

  1. class MyClass:
  2. def __init__(self, x, y):
  3. self.x = x
  4. self.y = y
  5. obj = MyClass(1, 2)
  6. obj.__dict__['z'] = 3
  7. print(obj.z)

执行上述代码,输出结果为:

  1. 3

从输出结果可以看出,我们向对象的dict属性中添加了一个属性z,并且成功访问了它的属性值。

我们也可以通过dict动态地添加方法:

  1. class MyClass:
  2. def __init__(self, x, y):
  3. self.x = x
  4. self.y = y
  5. def add(self):
  6. return self.x + self.y
  7. obj = MyClass(1, 2)
  8. obj.__dict__['multiply'] = lambda self: self.x * self.y
  9. print(obj.multiply())

执行上述代码,输出结果为:

  1. 2

从输出结果可以看出,我们向对象的dict属性中添加了一个方法multiply,并且成功调用了它

通过dict动态删除属性和方法

我们可以通过dict动态地删除属性和方法。我们可以通过以下方式删除对象的属性:

  1. class MyClass:
  2. def __init__(self, x, y):
  3. self.x = x
  4. self.y = y
  5. obj = MyClass(1, 2)
  6. obj.__dict__['z'] = 3
  7. print(obj.z)
  8. del obj.__dict__['z']
  9. print(obj.__dict__)

执行上述代码,输出结果为:

  1. 3
  2. {'x': 1, 'y': 2}

从输出结果可以看出,我们向对象的dict属性中添加了一个属性z,并且成功访问了它的属性值。然后我们删除了这个属性,并且成功删除了它。

我们也可以通过dict动态地删除方法:

  1. class MyClass:
  2. def __init__(self, x, y):
  3. self.x = x
  4. self.y = y
  5. def add(self):
  6. return self.x + self.y
  7. obj = MyClass(1, 2)
  8. obj.__dict__['multiply'] = lambda self: self.x * self.y
  9. print(obj.multiply())
  10. del obj.__dict__['multiply']
  11. print(obj.__dict__)

执行上述代码,输出结果为:

  1. 2
  2. {'x': 1, 'y': 2, 'add': }

从输出结果可以看出,我们向对象的dict属性中添加了一个方法multiply,并且成功调用了它。然后我们删除了这个方法,并且成功删除了它。