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

Python反射机制

时间:2019-01-19 15:13:30      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:code   代码   log   字符   eth   sel   原理   自动   address   

在写代码过程中,常常会遇到这样的需求。

通个字符串系统能自己找到相应的(类,方法,静态属性)对象并执行它。这种就叫反射。

例如,我们的学校管理系统当时,当管理员登陆时,想要查看学生信息。他输入‘学生’字样。系统根据‘学生’,自动执行‘查询学生信息”方法。

 

简单的例子来写一个反射:

class Login():
    address=北京市
    def __init__(self,name,pwd):
        self.name=name
        self.pwd=pwd
    def login(self):pass
    @staticmethod
    def get_usr_pwd():
        name=input(用户名>>)
        pwd=input(密码>>>)
        Login(name,pwd)
na = getattr(Login,address)
print(na)
ret_func=getattr(Login,get_usr_pwd)
ret_func()
北京市
用户名>>
密码>>>

其原理是:Python将视所有东西为对象。即类,方法,属性都是对象。只要这个对象已经在内存已有命名空间,则通过getattr(类名,方法名/属性名),找到它,即找到一个内存地址。如果找到的是一个方法的内存地址,只要在后面加括号执行即可。

 

Python反射机制

标签:code   代码   log   字符   eth   sel   原理   自动   address   

原文地址:https://www.cnblogs.com/hisweety/p/10291648.html

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