当前位置:   article > 正文

【python】importlib模块_python importlib

python importlib

背景

django项目的开发中遇到了一种情况:得到了一个模块的字符串表示形式,如何将其导入并执行其中的方法或者函数呢?

解决方法

百度了之后发现了可以使用importlib模块,导入字符串类型的内置模块、文件,或者自定义的模块,相当于导入了该模块,之后就可以通过反射(getattr)调用模块内的属性或者方法。我们就以time模块为例进行说明吧。

>>> import importlib
>>> dir(importlib)
['_RELOADING', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__import__', '__loader__', '__name__', '
__package__', '__path__', '__spec__', '_bootstrap', '_bootstrap_external', '_imp', '_r_long', '_w_long', 'abc', 'find_lo
ader', 'import_module', 'invalidate_caches', 'machinery', 'reload', 'sys', 'types', 'util', 'warnings']
>>> obj = importlib.import_module('random')
>>> type(obj)
<class 'module'>
>>> getattr(obj, 'randint')(1,3)
2
>>> getattr(obj, 'randint')(1,3)
3
>>> getattr(obj, 'sample')([1, 2, 3, 4, 5], 3)
[5, 1, 3]
>>>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/272226
推荐阅读
相关标签
  

闽ICP备14008679号