码迷,mamicode.com
首页 > 其他好文 > 详细

反射的使用

时间:2016-10-28 02:55:04      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:反射   print   put   port   else   att   man   code   登录   

反射的作用:通过字符串去匹配对象中的成员(成员一般指模块中的函数)。

例1:

 1 py1.py
 2 def login():
 3     print("登录")
 4 def logout():
 5     print("退出")
 6 def manager():
 7     print("管理")
 8 
 9 
10 在py2.py中调用py1.py
11 import py1
12 def run():
13     choice=input("输出你的选择:")   #通过不同的输入请求,来调用不同模块
14     if choice=="login":
15         py1.login()
16     elif choice=="logout":
17         py1.logout()
18     elif choice=="manager":
19         py1.manager()
20     else:
21         print(404)
22 if __name__ == "__main__":
23     run()import py1
24 缺点:这要需要重复写很多if elif else
使用反射来改进代码:
py2.py
import py1
def run():
    choice=input("输出你的选择:")
    func=getattr(py1,choice)  #匹配py1模块中的choice函数
    func()
if __name__ == "__main__":
    run()

或者
py2.py
import py1
def run():
    choice=input("输出你的选择:")
    if hasattr(py1,choice):         #判断py1中是否有choice函数,有点话执行
        func=getattr(py1,choice)
        func()
if __name__ == "__main__":
    run()

 

反射的使用

标签:反射   print   put   port   else   att   man   code   登录   

原文地址:http://www.cnblogs.com/RomanticYori/p/6005935.html

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