【python】python的反射的自我总结
python的反射,其实就是想要导入哪个模块就输入这个模块名,还有就是调用你输入的模块的属性或方法
python的反射本质其实就是根据字符串的形式去操作模块中的方法及成员
# -*- coding:utf-8 -*- imp=input("请输入模块名") moudle=__import__(imp) #上面的代码是通过用户输入的字符串,调用哪个模块,如果直接用import接字符串是没有办法导入的 #如果__import__()导入的是嵌套目录,则需要加个参数 #例如:__import__("lib.text.com",fromlist=True)#这样就会在lib下目录的text的目录下的找com模块,如果不传fromlist=True,它只会在lib中查找 moudleEle=input("输入模块的方法或属性") func=getattr(moudle,moudleEle,"none") #上面的方法是通过用户输入的方法或属性的名字传入给getattr()方法,从而去这个模块去寻找,如果找到就会放在func这个变量里 has=hasattr(moudle,moudleEle) #上面的方法是检测这个模块有没有这个属性和方法的,有就返回会true,有没就返回false setattr(moudle,"myfunc",lambda a: print(a+1)) #上面的这个方法是设置这个模块的方法或属性的,设置方法的时候需要用lambda表达式,调用设置的方法也必须要借用getattr()方法 func=getattr(moudle,"myfunc","none") func(10)#结果为11 delattr(moudle,"属性或方法名") #上面的方法是删除输入的指定的方法或者是属性 #print(func)#这是用户输入属性的时候,如果是属性就直接打印, #func()#如果用户输入的是方法,如果需要调用这个方法就要加()才能调用

浙公网安备 33010602011771号