反射就是一個別名。函數
實際做用:到一個庫或者類中去找一個能夠引用的東西,類名,函數名,實例,變量均可以spa
關鍵點:兩個函數hasattr()返回True(說明存在)不然返回False,getattr()返回一個地址不然報錯orm
兩個參數,第一個寫要去哪兒找,第二個寫上面一堆東西的名字,字符串類型。對象
反射本文件: hasattr(sys.modules[__name__],'A')blog
自動反射其餘庫中對象: 使用__import__()方法字符串
要在paketage中反射,xiaoyun.py中的某個類get
那麼先在本身的syspath中加入p1文件夾的路徑,而後form
mol=__import__('p_1_2.p_1_2_1.xiayun',formlist=True)import
c=getattr(mol,'Xiaoyun')變量
c就是Xiaoyun這個類的地址了,能夠任意使用.
要注意的是:若是__import__(),不加第二個參數,就只會返回第一個參數的頂級類,而不是具體指向的類