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自带模块没事还是需要涨涨见识~~~

 

开心~~有学习一个新的模块~~~

 

posted @ 2019-03-12 15:43  小小Guido妹  阅读(1430)  评论(0编辑  收藏  举报