python 3 __import__ 字符串动态加载模块

Python 动态加载

本文介绍动态的Python配置加载,期望从配置文件根据字符串加载module或者方法
解决: 动态加载module问题(未加载),类似的函数还有eval(获取作用域内方法), getattr(获取对象的方法)等
例如配置文件:

>>>	import 'os'  
    File "<ipython-input-1-69642997ed4d>", line 1
    import 'os'
              ^
SyntaxError: invalid syntax

例如,通过__import__实现动态加载

	os_module = __import__('os')
	os_module.path  

通过一个例子,可以知道__import__可以加载字符串组成的函数。

__import__ (name[, globals[, locals[, fromlist[, level]]]])
  • name (required): 被加载 module 的名称
  • globals (optional): 包含全局变量的字典,该选项很少使用,采用默认值 global()
  • locals (optional): 包含局部变量的字典,内部标准实现未用到该变量,采用默认值 local()
  • fromlist (Optional): 被导入的 submodule 名称
  • level (Optional): 导入路径选项,默认为 -1,表示同时支持 absolute import 和 relative import

import的本质是调用__import加载module的,例如:

import os 
# 最终的函数调用实现如下
os = __import__('os', globals(), locals(), [], -1)

如果,参数中代用"."

>>> __import__("os")
<module 'os' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.pyc'>

>>> __import__("os.path")
<module 'os' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.pyc'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值