获取
- 每个对象都有一个dict属性,它是一个字典类型,用于保存对象的所有属性和方法
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
obj = MyClass(1, 2)
print(obj.__dict__)
执行上述代码,输出结果为:
{'x': 1, 'y': 2}
通过dict动态添加属性和方法
在Python中,我们可以通过dict动态地添加属性和方法。我们可以通过以下方式向对象的dict属性中添加属性:
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
obj = MyClass(1, 2)
obj.__dict__['z'] = 3
print(obj.z)
执行上述代码,输出结果为:
3
从输出结果可以看出,我们向对象的dict属性中添加了一个属性z,并且成功访问了它的属性值。
我们也可以通过dict动态地添加方法:
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
def add(self):
return self.x + self.y
obj = MyClass(1, 2)
obj.__dict__['multiply'] = lambda self: self.x * self.y
print(obj.multiply())
执行上述代码,输出结果为:
2
从输出结果可以看出,我们向对象的dict属性中添加了一个方法multiply,并且成功调用了它
通过dict动态删除属性和方法
我们可以通过dict动态地删除属性和方法。我们可以通过以下方式删除对象的属性:
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
obj = MyClass(1, 2)
obj.__dict__['z'] = 3
print(obj.z)
del obj.__dict__['z']
print(obj.__dict__)
执行上述代码,输出结果为:
3
{'x': 1, 'y': 2}
从输出结果可以看出,我们向对象的dict属性中添加了一个属性z,并且成功访问了它的属性值。然后我们删除了这个属性,并且成功删除了它。
我们也可以通过dict动态地删除方法:
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
def add(self):
return self.x + self.y
obj = MyClass(1, 2)
obj.__dict__['multiply'] = lambda self: self.x * self.y
print(obj.multiply())
del obj.__dict__['multiply']
print(obj.__dict__)
执行上述代码,输出结果为:
2
{'x': 1, 'y': 2, 'add': }
从输出结果可以看出,我们向对象的dict属性中添加了一个方法multiply,并且成功调用了它。然后我们删除了这个方法,并且成功删除了它。