python 反射

反射就是一个别名。

实际作用:到一个库或者类中去找一个可以引用的东西,类名,函数名,实例,变量都可以

关键点:两个函数hasattr()返回True(说明存在)否则返回False,getattr()返回一个地址否则报错

    两个参数,第一个写要去哪儿找,第二个写上面一堆东西的名字,字符串类型。

    反射本文件: hasattr(sys.modules[__name__],'A')

    自动反射其他库中对象: 使用__import__()方法

  

     要在paketage中反射,xiaoyun.py中的某个类

     那么先在自己的syspath中加入p1文件夹的路径,然后

     mol=__import__('p_1_2.p_1_2_1.xiayun',formlist=True)

     c=getattr(mol,'Xiaoyun')

     c就是Xiaoyun这个类的地址了,可以任意使用.

     要注意的是:如果__import__(),不加第二个参数,就只会返回第一个参数的顶级类,而不是具体指向的类

  

posted @ 2018-12-08 22:06  吉元吉  阅读(159)  评论(0编辑  收藏  举报