说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
在 Python 中,import 语句用于引入模块,从而使其定义的功能(如函数、类、变量等)可以在当前命名空间中使用。Python 模块是一个包含 Python 代码的文件,扩展名是 .py
。
import 语句有几种常见的用法,每种用法都提供了一种引入模块中功能的方式。
总结:
import foo # 导入 foo 并在本地绑定
import foo.bar.baz # 导入 foo、foo.bar 和 foo.bar.baz,foo 在本地绑定
import foo.bar.baz as fbb # 导入 foo、foo.bar 和 foo.bar.baz,并将 foo.bar.baz 绑定为 fbb
from foo.bar import baz # 导入 foo、foo.bar 和 foo.bar.baz,并将 foo.bar.baz 绑定为 baz
from foo import attr # 导入 foo 并将 foo.attr 绑定为 attr
最基本的 import 语句形式是导入整个模块:
import module_name
使用时,必须通过模块名引用其内容:
import math
print(math.sqrt(16)) # 输出: 4.0
可以从模块中导入特定的函数、类或变量:
from module_name import name1, name2, ...
使用时,可以直接使用导入的名称:
from math import sqrt, pi
print(sqrt(16)) # 输出: 4.0
print(pi) # 输出: 3.141592653589793
为了简化模块名或避免命名冲突,可以使用 as 关键字给导入的模块或其部分起一个别名:
import module_name as alias
# 或者
from module_name import name as alias
示例:
import numpy as np
print(np.array([1, 2, 3])) # 使用别名 np 代替 numpy
from math import sqrt as square_root
print(square_root(16)) # 使用别名 square_root 代替 sqrt
可以使用星号 *
导入模块中的所有内容:
from module_name import *
这通常不推荐使用,因为它会导入模块中的所有名称,可能导致命名冲突:
from math import *
print(sqrt(16)) # 直接使用模块中的名称
print(pi)
Python 解释器在以下几个位置搜索模块:
你可以通过查看 sys.path 列表来了解当前的模块搜索路径:
import sys
print(sys.path)
也可以将指定的目录加到搜索路径中:
import sys
dir = '/user/gairuo/....'
sys.path.append(dir)
你可以创建自己的模块。假设有一个名为 my_module.py 的文件,内容如下:
# my_module.py
def greet(name):
return f"Hello, {name}!"
可以在另一个 Python 文件中导入并使用它:
import my_module
print(my_module.greet("Alice")) # 输出: Hello, Alice!
包是包含模块的目录,目录中必须有一个 __init__.py
文件。使用包可以组织模块层次结构。假设有以下目录结构:
my_package/
__init__.py
module1.py
module2.py
可以导入包中的模块:
from my_package import module1
import my_package.module2 as m2
import 语句是 Python 的核心功能之一,用于引入模块和包,从而复用代码和组织项目。掌握不同的导入方式和了解模块搜索路径对于编写清晰、可维护的代码非常重要。
importlib.import_module()
和 __import__()
被提供用来为动态地确定要导入模块的应用提供支持。
更新时间:June 9, 2024, 10:18 a.m. 标签:python import 导入