码迷,mamicode.com
首页 > 编程语言 > 详细

Python内置函数 __import__ 动态加载模块

时间:2020-11-19 12:51:14      阅读:10      评论:0      收藏:0      [点我收藏+]

标签:技术   pre   ase   文件目录   python   info   子目录   案例   加载类   

__import__() 函数用于动态加载类和函数 。

如果一个模块经常变化就可以使用 __import__() 来动态载入。

语法

  __import__(name[, globals[, locals[, fromlist[, level]]]])

说明

  1. 函数功能用于动态的导入模块,主要用于反射或者延迟加载模块。

  2. __import__(module)相当于import module

  3. __import__(package.module)相当于from package import name,如果fromlist不传入值,则返回package对应的模块,如果fromlist传入值,则返回package.module对应的模块。

案例演练

文件目录结构如下

技术图片

# main.py

# 1、动态加载同级目录模块
#  __import__(module)相当于import module
index = __import__(‘file1‘)
# 执行file1模块中的函数
index.def_file1()


# 2、动态加载子目录模块
# __import__(package.module)相当于from package import name,如果fromlist不传入值,则返回package对应的模块,如果fromlist传入值,则返回package.module对应的模块。
# 2.1 fromlist不传入值,执行file2模块中的函数
index = __import__(‘case.file2‘)
print(‘=‘*30)
print(‘fromlist不传入值‘)
index.file2.def_file2()
print(‘=‘*30)


# 2.2 fromlist传值,执行file2模块中的函数
index = __import__(‘case.file2‘, fromlist=(‘file2‘,))
print(‘fromlist传入值‘)
index.def_file2()
print(‘=‘*30)


module_name = ‘file2‘
index = __import__(f‘case.{module_name}‘, fromlist=(f‘{module_name}‘,))
index.def_file2()
# file1.py

def def_file1():
    print("调用同级目录中的file1函数")
# file2.py

def def_file2():
    print("调用子目录中的file2函数")

执行结果

技术图片

 

Python内置函数 __import__ 动态加载模块

标签:技术   pre   ase   文件目录   python   info   子目录   案例   加载类   

原文地址:https://www.cnblogs.com/testlearn/p/13974275.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!