【python图解】理解 Python 模块导入
在我们理解函数等python的基本语法之后,后面我们需要熟练掌握 Python 的模块化编程,理解如何有效地使用和管理模块。这不仅有助于提高代码的可维护性和可重用性,还能让我们避免重复工作,提升开发效率。
基本概念
模块就像工具箱
想象一下,你是一位工匠,做木工活。你有一个工具箱,里面放满了各种工具:锤子、锯子、螺丝刀、钳子等。每当你需要某个工具时,你就从工具箱里拿出来使用。
在 Python 中,模块就像是这个工具箱。每个模块里面都包含了一些功能(工具),比如函数、类和变量。你可以通过导入模块,就像是打开工具箱,拿出你需要的工具来用。
使用的基本语法
import 的使用
假设你需要做木工活时,决定一次性拿出整个工具箱,这样工具箱里的每样工具你都能用到。
在 Python 中,当你使用 import
语句时,就像是拿出整个模块。你可以通过模块名来访问其中的所有工具(函数、类和变量)。
math是python自带的本地库,可以直接使用
示例:
import math # 拿出整个工具箱 'math'print(math.sqrt(16)) # 使用工具箱里的 'sqrt' 工具print(math.pi) # 使用工具箱里的 'pi' 工具
在上面的例子中,math
就是你的工具箱,sqrt
和 pi
是其中的工具。你通过 math.sqrt()
和 math.pi
来访问这些工具。
from ... import ...
如果你只需要用到其中的某个工具,而不想搬整个工具箱,你可以直接把所需工具拿出来,这样既方便又节省空间。
在 Python 中,from ... import ...
就像是从工具箱中直接拿出一个具体的工具。这样你就可以直接使用工具的名字,而不用通过模块名来调用。
示例:
from math import sqrt # 只拿出 'sqrt' 工具print(sqrt(16)) # 直接使用 'sqrt' 工具
在这个例子中,你直接拿出了 sqrt
工具,因此使用时不需要再加上 math.
前缀。
as 的使用
有时候工具箱里的工具名字太长或者不好记,我们可以给工具起个更简短或者更容易记的别名。这样在使用的时候更加方便。
在 Python 中,as
关键字就像是给工具(模块)取个别名,使得代码更加简洁。
示例:
python复制代码import math as m # 给 'math' 工具箱取个别名 'm'print(m.sqrt(16)) # 使用别名 'm' 访问 'sqrt'
在这个例子中,你将 math
这个工具箱的名字简化为 m
,然后通过 m.sqrt(16)
来使用工具。
from ... import * 的使用
如果你一次性将工具箱里所有的工具都搬到工作台上,这样所有的工具都能随时使用。虽然这听起来很方便,但可能会占用过多的空间,甚至可能有一些工具的名字与其他工具重复,造成混乱。
在 Python 中,from ... import *
会导入模块中的所有内容,这样你可以直接使用模块里的任何函数、类或变量,但这通常会让代码的可读性变差,不推荐频繁使用。
示例:
from math import * # 一次性拿出 'math' 工具箱里的所有工具print(sqrt(16)) # 可以直接使用 'sqrt',无需通过模块名
在这个例子中,sqrt
被直接导入到了当前命名空间,你可以直接调用,而不需要再加上 math.
。
模块的搜索路径:工具箱的存放位置
比如说当你需要一个工具时,你会去寻找最近的工具箱。如果工具箱不在工作台上,你就会去仓库找,甚至去邻居家借。Python 模块的导入机制也是类似的:它会在特定的目录下寻找你所导入的模块。
• 首先,它会查找当前目录(你工作桌上的工具箱)。
• 如果没有,它会查找 Python 的安装目录(工具厂商提供的标准工具箱)
• 然后,它会查找环境变量中指定的路径(就像去邻居家借工具)。
你可以通过 sys.path
查看 Python 的搜索路径,并且可以自己添加新的路径。
import sysprint(sys.path) # 查看搜索路径
Python 内置模块:常用工具箱
Python 提供了很多常用的工具箱(内置模块),你可以直接导入使用。比如:
• math:数学计算工具箱
• os:操作系统工具箱(用于文件和目录管理)
• sys:系统工具箱(与 Python 解释器相关)
• datetime:日期和时间工具箱
• random:随机数工具箱
这些工具箱是 Python 自带的,你无需自己去创建,只要通过 import
导入就可以使用。
示例:
import random # 导入随机数工具箱print(random.randint(1, 10)) # 使用随机数工具箱中的 'randint' 工具
总结
-
模块 就像一个工具箱,包含各种功能(工具)。
-
使用
import
可以一次性拿出整个工具箱,from ... import ...
可以只拿出需要的工具,as
可以给工具箱或工具取个别名。 -
from ... import *
会把所有工具都拿出来,但不推荐使用,因为可能会造成混乱。 -
Python 会根据一系列路径来寻找你所需要的模块,就像寻找工具箱一样。
-
内置模块就像是常见的工具箱,可以直接拿来使用。