这篇文章主要介绍了Python类反射机制使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
反射就是通过字符串的形式,导入模块,通过字符串的形式,去模块寻找指定函数并执行。
Python有四个内置函数:
函数 功能 attr(违约)getattr(对象) 获取指定字符串名称的对象属性或方法,如果对象有该属性则返回属性值,如果有该方法则返回该方法的内存地址,如果都没有就报的错,如果指定了默认值找不到不会报错会取默认值 hasattr(对象,attr) 判断指定字符串名称的对象是否有该属性或方法,返回真或假 setattr(对象,attr,价值) 为指定字符串名称的对象设置属性,如果对象已有该属性则覆盖属性值,如果没有该属性则新增属性并赋值 delattr(对象,attr) 删除指定字符串名称的对象的某属性,如果对象没有该属性会报的错
示例:
类演示: def __init__(自我): self.name=' abc ' def方法(自我): 通过 #实例化 d=演示() #获取对象中的属性,方法 name=getattr (d '名称') func=getattr (d,“方法”) 打印(名称) 打印(函数) 打印(‘\ r’) #查看是否有属性或方法 print (hasattr (d '名称')) print (hasattr (d,“方法”) print (hasattr (d ' abc ')) #设置对象的属性值 setattr (d '名称',' aaa ') #已有的属性值会修改 setattr (d,“年龄”,10)#没有该属性会新增并赋值 #删除对象的属性 delattr (d '名称')
输出结果:
美国广播公司 & lt;绑定方法演示。方法& lt; __main__。演示对象在0 x00000000028a27f0>比; 真正的 真正的 假
反射的使用
demo1:
#导包 时间=__import__(时间) #获取方法 睡眠=getattr(时间,“睡眠”) #调用 睡眠(5)
等价于:
# 1 导入的时间 time . sleep (5) # 2 从进口睡眠时间 睡眠(5)
以及接下来:
#导包 webdriver=__import__(硒。webdriver’, fromlist=[' webdriver ']) #实例化,获取方法 司机=webdriver.Chrome () 辞职=getattr(司机,“戒烟”) #调用方法 辞职()
等价于:
从硒进口webdriver 司机=webdriver.Chrome () driver.quit ()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。