标签: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(类名,方法名/属性名),找到它,即找到一个内存地址。如果找到的是一个方法的内存地址,只要在后面加括号执行即可。
标签:code 代码 log 字符 eth sel 原理 自动 address
原文地址:https://www.cnblogs.com/hisweety/p/10291648.html