Python类反射机制使用实例解析

  

这篇文章主要介绍了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 ()      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Python类反射机制使用实例解析