關于sys.modules[__name__]的用法,百度上閱讀量比較多得一個帖子是:https://www.cnblogs.com/robinunix/p/8523601.html
對于里面提到的基礎性的知識點這里就不再重復了,大家看原貼就好。這里為大家提供一個詳細的例子,幫助大家更進一步的理解。
有這樣一個需求:我們需要在whw.json文件中讀取出name鍵對應的value,然后用這個value通過getattr方法取到相應模塊的對象名,實現該對象中的方法。
whw.json文件中的內容如下:
{"name": "whw", "password": "wanghwhwhw", "email": "1122@qq.com"}
具體代碼如下:
import sys import jsonf = open('whw.json','r') data = f.read() name = json.loads(data)['name']def whw():print('HelloWorld!')class Wanghw:def __init__(self):pass #構造函數略def run(self):whw_obj = getattr(sys.modules[__name__],name)whw_obj()if __name__ == '__main__':wanghw = Wanghw()wanghw.run()
程序的實現效果如下:
?