python动态的添加方法
1.动态的创建实例方法
1 class Person(object): 2 def __init__(self,name,age): 3 self.name = name 4 self.age =age 5 def eat(self): 6 print('----%s正在吃饭------' % self.name) 7 8 def run(self): 9 print('-----%s-----'%self.name) 10 11 #如何将run添加到Person类的一个实例对象中呢? 12 实例化类 13 xiaoming = Person('xm',18) 14 import type 15 xiaoming.run = types.MethodType(run,xiaoming) 16 # 运行即将run方法添加到了实例对象xiaoming中 17 xiaoming.run()
理解:如下图
2.动态的创建类方法&静态方法
1 class Person(object): 2 def __init__(self,name,age): 3 self.name = name 4 self.age =age 5 def eat(self): 6 print('----%s正在吃饭------' % self.name) 7 # 注意这里的@classmethod是放在类外边的 8 @classmethod 9 def sing(cls): 10 print('-----这是一个类方法-----') 11 # 注意这里的@staticmethod是放在类外边的 12 @staticmethod 13 def static(): 14 print('----这是一个静态方法--------') 15 # 为Person类添加类方法sing 16 Person.sing = sing 17 # 为Person类添加静态方法static 18 Person.static = static 19 # 类调用类方法 20 Person.sing() 21 # 类调用静态方法 22 Person.static() 23 # 实例化一个对象 24 Tom = Person('Tom',18) 25 # 对象调用类方法 26 Tom.sing() 27 # 对象调用静态方法 28 Tom.static()