import函数用法

import 是Python中用于导入模块(包括标准库、第三方库和自定义模块)的关键字。导入模块使得你可以在你的代码中使用模块中定义的函数、类、变量和其他功能,下面是关于import函数用法的详细解释。

1.导入整个模块:

你可以使用import module_name来导入一个完整的模块,然后在你的代码中通过模块名来访问其中的内容。

import math # 此处math为module_name
print(math.sqrt(25))  # 使用math模块中的sqrt函数计算平方根
#输出结果为5.0

你还可以通过使用逗号同时导入多个包,例如:

#同时导入os和sys包
import os,sys   # 模块间用逗号隔开,可以引用多个

2.导入模块中的特定内容:

有时候你可能只想导入模块中的特定函数、类或变量,而不是导入整个模块。你可以使用from module_name import item_name来实现这个目标。

from math import sqrt # 此处math为module_name,sqrt为item_name
print(sqrt(25))  # 直接使用sqrt函数,不需要使用模块名前缀
#输出结果为5.0

3.导入模块中的所有内容:

通过使用 from module_name import * ,你可以导入模块中的所有公共内容。然而,这种做法在大型项目中不太推荐,因为它可能导致命名冲突或不清晰的代码。

from math import *
print(sqrt(25))  # 直接使用sqrt函数,不需要使用模块名前缀
#输出结果为5.0

4.导入模块并给模块取别名:

你可以为导入的模块或库起一个别名,以缩短代码并提高可读性,例如我们一般把TensorFlow命名为tf,把numpy命名为np。

import numpy as np
array = np.array([1, 2, 3, 4])
print(array)
#输出结果为[1 2 3 4]

5.自定义模块的导入:

你也可以导入自己编写的模块,只需确保模块在Python路径中可找到。

from mymodule import my_function
result = my_function()

6.绝对导入和相对导入

绝对导入(Absolute Import)和相对导入(Relative Import)是Python中用于导入模块的两种不同方式。它们主要用于确定你希望从哪个位置开始查找和导入模块。让我们详细解释一下这两种导入方式:

(1)绝对导入(Absolute Import):

绝对导入是从项目的根目录或顶层包开始的导入方式。这意味着你要指定完整的包路径来导入模块,不论你当前的工作目录是什么。绝对导入方式在确保导入路径的明确性方面非常有用,特别是在较大的项目中。

例如,如果有一个项目结构如下:

my_project/
├── main.py
└── my_package/
    ├── __init__.py
    ├── module1.py
    └── module2.py

你可以使用绝对导入在 module2.py 中导入 module1.py,如下所示:

# module2.py

from my_package import module1

(2)相对导入(Relative Import):

相对导入是从当前模块所在位置出发的导入方式。使用相对导入时,你可以使用点 . 来表示当前模块的位置,然后指定相对于当前模块的导入路径。

在相对导入中,有两种不同的方式:隐式相对导入显式相对导入
我们仍然按照上面的项目结构进行介绍。

my_project/
├── main.py
└── my_package/
    ├── __init__.py
    ├── module1.py
    └── module2.py

方法一:隐式相对导入

隐式相对导入:使用单个点 . 表示从当前文件夹中导入模块。
在 module2.py 中导入 module1.py:

# module2.py

from . import module1#从my_package文件夹中导入module1

方法二:显式相对导入

显式相对导入:使用多个点 … 表示向上一级包中导入模块。
在 module2.py 中导入 module1.py:

# module2.py

from ..my_package import module1
#..是my_project文件夹,..my_package则是my_project文件夹下的my_package文件夹

总结来说,绝对导入从项目的根目录或顶层包开始导入模块,而相对导入从当前模块所在位置出发,根据模块的相对关系来导入其他模块。在选择导入方式时,你可以根据项目的结构和需要来决定哪种方式更适合你的情况。

7.from folder_name import module_name与from module_name import my_functions

从文件夹中导入 module和从 module中导入函数,两者代码格式是非常相似的,注意区分

from folder_name import module_name # 从文件夹中导入module
from module_name import my_functions # 从module中导入某个函数

补充:

在Python中,当你使用import语句导入模块时,导入的顺序通常是按照以下规则进行的:

首先,Python会搜索当前工作目录下是否存在要导入的模块文件。
如果在当前工作目录中找不到该模块,Python会搜索已安装的标准库和第三方库。
如果在标准库和第三方库中找不到该模块,Python会引发ModuleNotFoundError异常,表示未找到该模块。
需要注意的是,Python中的导入是一种延迟加载(lazy load)机制,即在首次导入模块时才会执行模块中的代码。此外,一旦一个模块被导入,它会被缓存,以便在后续导入中重用,从而避免重复加载和执行。

另外,如果你在代码中使用了绝对路径导入(例如from package.subpackage import module),Python会按照从最外层包到最内层子包的顺序进行导入。这有助于确保导入顺序的一致性,避免循环导入问题。

总之,导入模块的顺序是先在当前工作目录和已安装的库中搜索,然后按照包层次结构进行导入。

猜你喜欢

转载自blog.csdn.net/thy0000/article/details/132072327
今日推荐