码迷,mamicode.com
首页 > 编程语言 > 详细

Python----面向对象---反射的应用

时间:2018-03-22 22:41:29      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:strip()   ...   bsp   def   面向   post   sel   txt   get   

一、根据用户的输入,执行对象方法

例如:

 1 class Service:
 2     def run(self):
 3         while True:
 4             cmd = input(>>: ).strip()
 5             if hasattr(self, cmd):
 6                 func = getattr(self, cmd)
 7                 func()
 8             print(cmd)
 9 
10     def get(self):
11         print(get.......)
12 
13     def put(self):
14         print(put.......)
15 
16 
17 obj = Service()
18 obj.run()
19 
20 结果为:
21 >>: get
22 get.......
23 get
24 >>: put
25 put.......
26 put
27 >>: xxxx
28 xxxx
29 >>: 

有用户选择的方法的话执行,没有的话就不会执行

还可以对上述代码进行改进,如下:

 1 class Service:
 2     def run(self):
 3         while True:
 4             inp = input(>>: ).strip()
 5             cmds = inp.split()
 6             print(cmds)
 7             if hasattr(self, cmds[0]):
 8                 func = getattr(self, cmds[0])
 9                 func(cmds)
10 
11 
12     def get(self, cmds):
13         print(get......., cmds)
14 
15     def put(self, cmds):
16         print(put......., cmds)
17 
18 
19 obj = Service()
20 obj.run()
21 
22 结果为:
23 
24 >>: get a.txt
25 [get, a.txt]
26 get....... [get, a.txt]
27 >>: put b.txt
28 [put, b.txt]
29 put....... [put, b.txt]
30 >>: 

 

Python----面向对象---反射的应用

标签:strip()   ...   bsp   def   面向   post   sel   txt   get   

原文地址:https://www.cnblogs.com/xudachen/p/8626864.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!