python-17-包和模块
一.说明
python中的基础系列关于组织代码的基本单位就是包和模块,在真实项目中我们不可能将所有代码都写在一起,或者我们的一些工具类库等需要单独处理,方便各模块调用,怎么办?这时候包和模块就来了,可以很方便的帮我们组织代码。来开始我们今天的日拱一卒!。
二.模块
-
定义:
模块是一个包含 Python 代码的文件,通常以
.py
结尾。模块可以定义函数、类和变量,也可以包含可执行代码。模块一般分为 自定义模块 内置标准模块 开源模块(第三方模块),我们这章重点介绍自定义模块
-
创建模块
让我们创建一个简单模块
mymodule.py
,内容如下:# mymodule.py def greet(name): return f"Hello, {name}!" PI = 3.14159
-
调用模块
在模块当前目录下,创建main.py文件,内容如下
# mymodule.py import mymodule print(mymodule.greet("Alice")) # 输出: Hello, Alice! print(mymodule.PI) # 输出: 3.14159
-
多种导入方式
-
整包导入 import mymodule
# mymodule.py import mymodule print(mymodule.greet("Alice")) # 输出: Hello, Alice! print(mymodule.PI) # 输出: 3.14159
-
使用
from ... import ...
# mymodule.py from mymodule import greet,PI print(greet("Alice")) # 输出: Hello, Alice! print(PI) # 输出: 3.14159
-
使用
from ... import *
# mymodule.py from mymodule import * print(greet("Alice")) # 输出: Hello, Alice! print(PI) # 输出: 3.14159
-
使用
import ... as ...
# mymodule.py import mymodule as my_m print(my_m.greet("Alice")) # 输出: Hello, Alice! print(my_m.PI) # 输出: 3.14159
-
三.包
-
定义:
包是一个包含多个模块的文件夹。包通过一个特殊的
__init__.py
文件来标识,文件可以是空的,也可以包含初始化代码。 -
创建包 我们在项目文件里面创建一个文件夹utils,里面包含3个文件
__init__.py
、module1.py
、module2.py
,内容如下:# __init__.py #空的 暂时什么都不用写
# module1.py def func1(): return "Function 1 from module 1"
# module2.py def func2(): return "Function 2 from module 2"
整体结构如下:
-
引入包
在主程序 main.py中引入 utils包,内容如下:
# main.py from utils import module1, module2 print(module1.func1()) # 输出: Function 1 from module 1 print(module2.func2()) # 输出: Function 2 from module 2
-
多种方式来导入包
-
导入整个模块
# main.py import utils.module1 import utils.module2 print(utils.module1.func1())# 输出: Function 1 from module 1 print(utils.module2.func2())# 输出: Function 2 from module 2
-
使用别名
import utils.module1 as m1 import utils.module2 as m2 print(m1.func1()) print(m2.func2())
-
导入特定函数或类
from utils.module1 import func1 from utils.module2 import func2 print(func1()) print(func2())
-
导入所有内容(不推荐)
from utils.module1 import * from utils.module2 import * print(func1()) print(func2())
-
-
__init__.py
文件的作用在刚刚举例中
__init__.py
文件是一个空文件,那么这个文件具体是用来干嘛的呢?一般来说总结有以下几点:-
标识包:使得 Python 知道该目录是一个包,可以导入其中的模块。
-
初始化代码:在包导入时自动执行,可以用于设置包的初始状态或导入子模块。
-
控制导入内容:可以通过定义
__all__
列表,控制从包中导入时可访问的模块或对象。
# utils/__init__.py from .module1 import func1 from .module2 import func2 __all__ = ['func1', 'func2'] # 控制导入内容 ''' 这样,当你使用 from mypackage import * 时,只会导入 func1 和 func2。 '''
-
四.总结
Python 中包和模块 大家重点学会包的创建和导入,导入的方式很多,大家根据自己的习惯来灵活实现包和模块的导入,通过本章的介绍 大家可以自己动手 创建属于自己的工具包!
创作整理不易,请大家多多关注 多多点赞,有写的不对的地方欢迎大家补充,我来整理,再次感谢!
标签:17,python,utils,py,工具包,模块,print,import,mymodule From: https://blog.csdn.net/Lookontime/article/details/143472376