Python 模块导入详解
在 Python 中,“调入”通常指导入(Import)模块或包,通过导入,你可以调用其他文件中定义好的函数、类或变量,从而实现代码的复用和模块化管理。
基础导入方式
-
导入整个模块
使用import关键字,调用时需要通过模块名.函数名的形式访问。import math print(math.sqrt(16)) # 输出 4.0
-
导入特定成员
使用from ... import ...语法,导入后可以直接使用函数名,无需再写模块名前缀。from math import sqrt, pi print(sqrt(16)) # 直接调用 print(pi) # 直接调用
-
导入所有成员(不推荐)
使用from 模块 import,这会导入模块中所有不以下划线开头的对象,容易导致命名空间污染(即不同模块的同名函数会互相覆盖)。
from math import
使用别名 (as)
为了简化代码或避免命名冲突,可以使用 as 关键字为模块或函数起一个别名。
-
模块别名(在数据分析领域非常常见):
import pandas as pd import numpy as np
-
成员别名:
from datetime import datetime as dt
导入自定义模块
如果你编写了多个 .py 文件,可以通过以下方式相互调用:
-
同级目录导入
假设有tools.py和main.py在同一个文件夹下:
# tools.py def greet(): print("Hello from tools!") # main.py import tools tools.greet() -
跨文件夹导入(包导入)
如果模块在子文件夹中,该文件夹应包含一个__init__.py文件(Python 3.3+ 版本虽不再强制要求,但建议保留以标识该目录为包)。# 目录结构: # project/ # ├── main.py # └── my_package/ # ├── __init__.py # └── utils.py from my_package import utils
核心注意事项
-
搜索路径 (
sys.path)
Python 导入模块时会按照sys.path列表中的路径顺序查找,如果你的模块不在标准库或当前目录下,可以通过以下方式手动添加路径:import sys sys.path.append('/path/to/your/module') -
循环导入 (Circular Import)
当A.py导入B.py,而B.py又导入A.py时,会触发循环导入错误。解决方法包括:- 将导入语句移至函数内部(延迟导入)。
- 重构代码,将共用部分提取到第三个模块
C.py中。
-
if __name__ == "__main__":的作用
在自定义模块中,建议将测试代码放在此判断下,这样当该文件被导入时,测试代码不会被执行;只有当该文件被直接运行时,测试代码才会执行。def my_func(): print("Function executed") if __name__ == "__main__": print("This only runs if the script is executed directly") my_func()
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/493534.html



