python动态导入模块
2018-01-03 21:30
435 查看
官方推荐方法
其它方法
使用示例:
运行结果:
应用(动态导入指定目录下的所有模块,并返回导入模块的自定义变量和方法)
运行结果:
import importlib module = importlib.import_module('my_module')
其它方法
module = __import__('my_module')
使用示例:
import importlib # 导入user.py模块 user = importlib.import_module('user') # 调用user.py中的get_info()方法,打印信息 print(user.get_info())
user.py文件代码:
def get_info(): return '姓名:小白, 年龄:20'
运行结果:
姓名:小白, 年龄:20
应用(动态导入指定目录下的所有模块,并返回导入模块的自定义变量和方法)
import glob import importlib import os def import_modules(pathname: str) -> dict: """ 导入指定路径或者目录下的模块,并返回模块信息 :param pathname: 要导入的模块路径(相对路径),可以导入指定目录下的模块,只要符合glob路径表达式写法即可 :return: 模块信息字典 """ modules_dict = {} module_paths = glob.glob(pathname) for path in module_paths: module_name = path.replace(os.sep, '.')[:-3] module = importlib.import_module(module_name) for element in dir(module): # 获取用户自定义的函数和变量名称 if not element.startswith('__'): modules_dict[element] = eval('module.{}'.format(element)) return modules_dict if __name__ == '__main__': # 导入views目录下的所有模块,并打印模块信息 module_info = import_modules('views/**.py') print(module_info)
运行结果:
{'add_menu': <function add_menu at 0x02FCFFA8>, 'delete_menu': <function delete_menu at 0x02FDDE40>, 'update_menu': <function update_menu at 0x02FDDC00>, 'add_user': <function add_user at 0x0305EF60>, 'delete_user': <function delete_user at 0x0305EFA8>, 'update_user': <function update_user at 0x0305E978>, 'user_name': 'xxx'}
相关文章推荐
- 在python中实现动态导入模块importlib.import_module
- Python动态导入模块的方法实例分析
- python3 动态模块导入与全局变量使用
- python核心编程学习笔记-2016-08-02-02-模块动态导入
- python 动态导入模块
- 在python中实现动态导入模块importlib.import_module
- Python动态导入模块
- python动态导入模块、检查模块是否安装
- Python中动态导入模块-pybatis的准备阶段(七)
- python中动态导入模块
- python动态导入模块
- python 动态导入模块、断言
- python动态导入模块、判断模块是否已安装
- Python 实现抽象类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)
- Python动态导入模块
- python中动态导入模块
- python动态导入模块、检查模块是否安装
- [转]Python动态导入模块
- 基础入门_Python-模块和包.运维开发中__import__动态导入最佳实践?
- python动态加载模块、类、函数