一、根据用户的输入,执行对象方法
例如:
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 >>: