首页 > 编程语言 > 详细

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

时间:2018-03-22 22:19:56      阅读:250      评论:0      收藏:0      [点我收藏+]

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

例如:

 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----面向对象---反射的应用

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!