面向对象引子

描述两个角色:
 1 def hum(name,age,job):
 2     """这是代表一个人"""
 3     data = {
 4         'name':name,
 5         'age':age,
 6         'job':job
 7     }
 8 
 9     return data
10 
11 def dog(name,type):
12     """这是代表一条旺财"""
13     data ={
14         'name':name,
15         'type':type
16     }
17 
18     return data
生成两个实际对象:
1 a = hum('gdr','22','it')
2 b = dog('Fish','taidi')
两个角色对象生成了,但是每个角色的功能不同,每个角色写一个功能函数,想执行哪个功能,直接调用:
 1 def walk(h):
 2     """人的特征"""
 3     print("Hum %s is walking..." %(h['name']))
 4 
 5 def run(d):
 6     """旺财的特征"""
 7     print("Dog %s is run..." %(d['name']))
 8 
 9 #调用
10 walk(a)
11 run(a)
以上会出现对象功能混用的情况,改变函数,使其不一样的对象对应不同的功能:
 1 def hum(name,age,job):
 2     """这是代表一个人"""
 3     def walk(h):
 4         print("Hum %s is walking..." % (h['name']))
 5     data = {
 6         'name':name,
 7         'age':age,
 8         'job':job,
 9         'walk':walk
10     }
11 
12     return data
13 
14 def dog(name,type):
15     """这是代表一条旺财"""
16     def run(d):
17         print("Dog %s is run..." % (d['name']))
18     data ={
19         'name':name,
20         'type':type,
21         'run':run
22     }
23     return data
24 
25 a = hum('gdr','22','it')
26 b = dog('Fish','taidi')
27 
28 print(a['walk'](a))

 

 


posted @ 2017-11-07 18:36  橙子味的萝卜  阅读(136)  评论(0编辑  收藏  举报