python動態的添加方法

1.動態的建立實例方法  spa

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

理解:以下圖code

   

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()
相關文章
相關標籤/搜索