Python全系列 教程
3567个小节阅读:5930.4k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
__import__()
动态导入
import
语句本质上就是调用内置函数__import__()
,我们可以通过它实现动态导入。给__import__()
动态传递不同的的参数值,就能导入不同的模块
【示例】使用__import__()
动态导入指定的模块
xxxxxxxxxx
s = "math"
m = __import__(s) #导入后生成的模块对象的引用给变量m
print(m.pi)
注意:一般不建议我们自行使用__import__()
导入,其行为在python2和python3中有差异,会导致意外错误。如果需要动态导入可以使用importlib
模块
xxxxxxxxxx
import importlib
a = importlib.import_module("math")
print(a.pi)
当导入一个模块时, 模块中的代码都会被执行。不过,如果再次导入这个模块,则不会再次执行。
Python的设计者为什么这么设计?因为,导入模块更多的时候需要的是定义模块中的变量、函数、对象等。这些并不需要反复定义和执行。“只导入一次import-only-once
”就成了一种优化。
一个模块无论导入多少次,这个模块在整个解释器进程内有且仅有一个实例对象。
test02.py
的源代码:
xxxxxxxxxx
print("test模块被加载了...")
test03.py
的源代码:
xxxxxxxxxx
import test02 #会执行test02模块中的语句
import test02 #不会再执行test02模块中的语句
重新加载
有时候我们确实需要重新加载一个模块,这时候可以使用:importlib.reload()
方法:
xxxxxxxxxx
import test02
import test02
print("####")
import importlib
importlib.reload(test02)
实时效果反馈
1. 如下关于模块的加载,说法错误的是:
A 导入模块时, 模块中的代码都会被执行。如果再次导入这个模块,会再次执行
B 一个模块无论导入多少次,这个模块在整个解释器进程内有且仅有一个实例对象
C 导入模块更多的时候需要的是定义模块中的变量、函数、对象等。这些并不需要反复定义和执行。“只导入一次import-only-once
”就成了一种优化。
D 我们确实需要重新加载一个模块,这时候可以使用:importlib.reload()
方法
答案
1=>A