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()

 

posted @ 2018-06-12 14:20  猴子吃果冻  阅读(538)  评论(0编辑  收藏  举报