【python学习笔记】Python反射机制

来源:互联网 发布:淘宝小二和闲鱼小法庭 编辑:程序博客网 时间:2024/05/21 08:52

说明

说到反射,让人熟知的eval函数,python除了这个函数,还有import() ,getattr、hasattr、setattr、delattr等方法

eval函数

class Test(object):    def __init__(self):        self.name = 'leason'    def foo(self,name):        self.name = nameif __name__ == "__main__":    eval_test = eval('Test()')    print  eval_test.name<< leason

import()方法

import方法实际上是import导入模块的另一种方式

//效果相同import  leason__import__('leason') //多层导入1. from app.serve import leason 2. __import__('app.serve.leason',fromlist=True) #如果不加上fromlist=True,只会导入list目录

操作成员getattr、hasattr、setattr、delattr

getattr、hasattr、setattr、delattr 获取成员、检查成员、设置成员、删除成员

class Test(object):    def __init__(self):        self.name = 'leason'    def func(self):        return Trueobj = Test()#获取成员ret = getattr(obj, 'func')#获取的是个对象r = ret()print(r)#检查成员ret = hasattr(obj,'func')#因为有func方法所以返回Trueprint(ret)#设置成员print(obj.name) #设置之前为:leasonret = setattr(obj,'name','leason1')print(obj.name) #设置之后为:leason1#删除成员print(obj.name) #leasondelattr(obj,'name')print(obj.name) #报错

leason | 个人博客

原创粉丝点击