python 以字符串形式import
今天把自己写了上万行的代码进行代码重构~~佩服我自己的勇气。。大量重复代码(重复率90%),真心看着恶心....
重构重构。。
遇到一个情况就是,就是如何通过字符串import 某个模块。
例如:有2个模块 A 与 B , 使用时希望是 call('A') 或者 call('B')
第一次考虑通过使用函数的方法:
1 import A 2 import B 3 4 def get_module(module_name): 5 if module_name == 'A': 6 return A 7 elif module_name == 'B': 8 return B 9 else: 10 raise Exception("Module is not existed") 11 12 13 14 get_module('A') 15 get_module('B')
后来看了很多成熟代码后,发现一个神器的模块 importlib, 所以代码改为
1 from importlib import import_module 2 3 import_module('A') 4 import_module('B') 5 6 # 一行搞定,python自带模块没事还是需要涨涨见识~~~
开心~~有学习一个新的模块~~~