import types class Car(): """ 混入机制:动态为自定义类和对象 增加 数据成员和成员方法:python动态类型 使用场景:比如用户分类很多,不同组用户权限和行为不一样 需要定义些独立的行为, 根据需要给用户组设置相应的行为能力。 """ price=100 def __init__(self,color): self.color=color def addoil(self,o):#注意:不缩进 是函数 self.oil=o Tesla=Car('yellow') Car.country='China'#动态添加类属性 Tesla.name="Tesla"#动态添加实例对象属性 #将 addoil 函数绑定到对象上:比如传统汽车要加油就绑定 #当我们需要将一个函数绑定到特定对象上,使其成为对象的方法时,可以使用types.MethodType Tesla.addoil=types.MethodType(addoil,Tesla)#动态给对象增加成员方法!! Tesla.addoil(100)#调用绑定方法 print(Tesla.oil)
import types class MyClass: def __init__(self, x): self.x = x def dynamic_method(self): print("Dynamic method called with x =", self.x) obj = MyClass(10)# 创建一个 MyClass 实例 dynamic_method_bound = types.MethodType(dynamic_method, obj) setattr(obj, 'dynamic_method', dynamic_method_bound)# 添加动态方法到 obj 实例 #obj.dynamic_method=types.MethodType(dynamic_method, obj) obj.dynamic_method() # 输出: Dynamic method called with x = 10 # 调用动态方法