第一个例子
关于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 json f = 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()
程序的实现效果如下: