做产品网站需要注意,网站制作入门,怎么做淘宝网站推广,linux下如何打开wordpress目录
1. 创建模块
2. 导入模块
3. 使用模块中的函数和变量
4. 什么是包#xff1f;
5. 导入包和模块
5.1 相对导入#xff08;Relative Import#xff09;
5.2 绝对导入#xff08;Absolute Import#xff09;
6. 使用包中的模块
7. 包的初始化和清理
8. 常见的…目录
1. 创建模块
2. 导入模块
3. 使用模块中的函数和变量
4. 什么是包
5. 导入包和模块
5.1 相对导入Relative Import
5.2 绝对导入Absolute Import
6. 使用包中的模块
7. 包的初始化和清理
8. 常见的第三方包管理工具
pip
virtualenv 和 venv
9. 常见的 Python 包
10. 如何发布自己的包
总结 前面的所有文章中我们都是用python 解释器来编程也就是说我们关闭编辑器再次进入什么都没有包括变量和许多方法。这时你就想该如何保存这些变量和方法呢
所以今天我们来学习解决上面问题的方法使用模块。
当谈到Python的模块和包时许多人可能会感到头疼。模块Module是Python中组织代码的基本方式。它允许你将代码分割成可重用的单元。一个模块可以包含函数、类和变量的定义以及可执行的代码。模块使得代码更具可读性和维护性同时也方便了代码的重用。这一点和函数很像但是确包含了函数。下面认真来看看
1. 创建模块
要创建 Python 模块只需要以下三步
创建一个新的 .py 文件。在文件中编写代码。将文件保存为 .py 文件。
例如创建一个名为 my_module.py 的模块并包含以下代码
def say_hello():print(Hello, world!)保存文件后使用 import 语句导入模块
import my_modulemy_module.say_hello()输出
Hello, world!2. 导入模块
前面简单学习了模块的创建现在要使用模块中的函数和变量你需要先将模块导入到你的代码中。在Python中有几种导入模块的方式
使用 import 语句导入整个模块
import 模块名 这样你就可以使用模块中的函数和变量
import math
print(math.sqrt(16)) # 输出 4.02. 使用 from ... import 语句导入模块中的特定函数、类或变量
from 模块名 import 函数名, 类名, 变量名直接使用导入的函数、类或变量而不需要通过模块名来访问
from math import sqrt
print(sqrt(16)) # 输出 4.03. 使用 as 关键字给模块或导入的内容起一个别名
import 模块名 as 别名
from 模块名 import 函数名 as 别名, 类名 as 别名简化模块名或导入内容的使用
import math as m
print(m.sqrt(16)) # 输出 4.0from math import sqrt as square_root
print(square_root(16)) # 输出 4.03. 使用模块中的函数和变量
导入模块后就可以使用其中定义的函数和变量了。如果是导入整个模块可以通过 模块名.函数名 或 模块名.变量名 的方式使用。如果是使用 from ... import 导入的特定内容直接使用函数、类或变量名即可。
常见的我们导入了 math 模块后
import math# 使用模块中的函数
print(math.sqrt(16)) # 输出 4.0# 使用模块中的常量
print(math.pi) # 输出 3.141592653589793如果使用了 from ... import 导入
from math import sqrt, pi# 直接使用导入的函数和变量
print(sqrt(16)) # 输出 4.0
print(pi) # 输出 3.141592653589793这样你就可以利用模块的功能避免重复编写代码相信我这样你一定能提高代码的可维护性和可读性。 4. 什么是包
包Package是一种用于组织 Python 模块的层级结构。允许你将相关的模块组织在一起以便更好地管理和维护代码。包的本质上是一个包含了一个或多个模块的文件夹其中还包含一个特殊的文件 __init__.py双下划线开头和结尾。
假设你想创建一个名为 my_package 的包你的文件系统目录结构可能如下
my_package/__init__.pymodule1.pymodule2.pysubpackage/__init__.pysubmodule1.pysubmodule2.py其中
my_package 是包的根文件夹。__init__.py 是一个空文件它告诉 Python 解释器这是一个包。module1.py、module2.py 等是包中的模块文件。subpackage 是一个子包也是一个包含 __init__.py 的文件夹。submodule1.py、submodule2.py 等是 subpackage 中的模块文件。 5. 导入包和模块
使用点号.来表示包的层级关系。如果你想导入包中的模块
import my_package.module1
import my_package.subpackage.submodule1导入的模块起个别名也可以用as
import my_package.module1 as m1
import my_package.subpackage.submodule1 as sm1使用 from ... import 来导入模块中的函数、类或变量
from my_package.module1 import some_function
from my_package.subpackage.submodule1 import MyClass5.1 相对导入Relative Import
相对导入是相对于当前模块的路径来导入其他模块。它使用点号 . 来表示相对路径。
假设你有一个包 my_package包含以下文件结构
my_package/__init__.pymodule1.pymodule2.pysubpackage/__init__.pysubmodule1.py如果在 subpackage/submodule1.py 中想导入 module1.py可以使用相对导入
from . import module1这告诉 Python 从当前模块所在的位置开始查找 module1.py。
5.2 绝对导入Absolute Import
绝对导入是从包的最顶层开始指定完整路径导入模块。你需要明确指定完整的包路径。
如果你在 subpackage/submodule1.py 中想导入 module1.py可以使用绝对导入
from my_package import module16. 使用包中的模块
如果你导入了包或者包中的模块就可以使用这些模块中的函数、类和变量了。使用方法与导入普通模块一样。
# 在 module1.py 中定义了一个函数 hello()
# module1.py
def hello():print(Hello from module1)保存module1.py然后在另一个文件中导入并调用这个函数
import my_package.module1my_package.module1.hello() # 输出Hello from module1或者使用 from ... import 语句
from my_package.module1 import hellohello() # 输出Hello from module1是不是很简单就使用包同时还使用了模块 7. 包的初始化和清理
前面有提到__init__.py。在 Python 中__init__.py 文件在包的结构中具有特殊的作用。当 Python 导入一个包时它会自动执行包中的 __init__.py 文件。这个文件可以包含包的初始化代码以及定义包的公开接口可供外部使用的模块、函数、类等。
包的初始化__init__.py 可以用于在包被导入时执行一些初始化工作。这可能包括设置包级别的变量、加载子模块或子包或执行其他初始化操作。比如说在导入包时加载一些资源或配置信息。
定义包的公开接口另一个常见的用法是通过 __init__.py 定义包的公开接口即定义哪些模块、函数、类是包的外部接口可以被其他模块导入和使用。
在 __init__.py 中你可以使用特殊的变量 __all__ 来明确指定包的公开接口。这个变量是一个包含字符串的列表指定了哪些模块应该在使用 from package import * 时被导入。
下面简单演示
假设你的包 my_package 的结构如下
my_package/__init__.pymodule1.pymodule2.py在 __init__.py 中定义 __all__ 变量可以限制导入的模块。假设你只想导出 module1可以这样做
# my_package/__init__.py
__all__ [module1]现在当你在其他地方使用 from my_package import * 时只有 module1 会被导入
from my_package import *module1.some_function() # 可以调用
module2.some_function() # 会引发 AttributeError这种方式可以让你更精确地控制包的公开接口避免不必要的模块被导入。 8. 常见的第三方包管理工具
在 Python 中有几个常见的第三方包管理工具让你可以更方便地管理和安装 Python 包。
pip
pip 是 Python 的包管理工具它允许你从 PyPIPython Package Index安装和管理包。
一些常用的 pip 命令包括
安装包pip install package_name升级包pip install --upgrade package_name卸载包pip uninstall package_name查看安装的包pip list
virtualenv 和 venv
virtualenv 和 Python 3.3 中内置的 venv 是用于创建和管理独立 Python 环境的工具。它们允许你在同一台计算机上拥有多个独立的 Python 环境每个环境可以有自己的包和依赖。
一些常用的 venv 命令包括
创建虚拟环境python3 -m venv myenv激活虚拟环境Linux/Macsource myenv/bin/activate激活虚拟环境Windowsmyenv\Scripts\activate
9. 常见的 Python 包
Python 生态系统中有许多优秀的第三方包用于各种不同的用途。以下是一些常见的 Python 包
NumPy用于科学计算的基础包提供了高性能的多维数组对象和用于处理这些数组的工具。Pandas提供了数据分析和处理功能包括高级数据结构和用于快速分析数据的工具。Matplotlib用于创建图表和可视化数据的绘图库。Requests用于处理 HTTP 请求的简单、优雅的库。Scikit-learn提供了简单而有效的工具用于数据挖掘和数据分析。Django 和 FlaskWeb 开发框架用于构建 Web 应用程序。
10. 如何发布自己的包
如果你编写了自己的 Python 包并希望与其他人分享你可以将它发布到 PyPIPython Package Index。以下是发布自己的包的基本步骤
编写 setup.py 文件setup.py 是一个描述包元数据的 Python 脚本。它包括包的名称、版本、作者、依赖项等信息。 一个简单的 setup.py 文件示例
from setuptools import setup, find_packagessetup(nameyour_package_name,version0.1,packagesfind_packages(),install_requires[dependency1,dependency2,],authorYour Name,author_emailyouexample.com,descriptionA short description of your package,urlhttps://github.com/you/your_package,
)构建包在包含 setup.py 文件的目录下运行命令
python setup.py sdist bdist_wheel注册 PyPI 账户在 PyPI 上注册一个账户https://pypi.org/account/register/。
上传包使用 twine 工具上传包到 PyPI。确保已安装 twine
pip install twine然后运行命令
twine upload dist/*输入 PyPI 账户信息后twine 将会上传你的包到 PyPI。
现在其他人就可以通过 pip install your_package_name 来安装你的包了。当然请确保在发布前仔细测试和验证你的包做一个合格的coder。 虽然我们简单的讲了Python的模块和包然后我们还简单交大家发布一个自己的包但是掌握这些内容值得我们花时间去深入理解和应用。
总结
我们下一篇文章将开始Python高阶特性的讲解继续学习、记录python的下一个知识点。
如果感觉阅读对您还有些作用可以评论留言关注我。谢谢您的阅读 往期学习
Python安装教程版本3.8.10windows10
Linux系统安装Condaminiconda
Conda快速安装的解决方法Mamba安装
VSCode安装教程版本1.87.0Windows10
Python基础语法从入门到精通的必备指南
Python的基本数据类型
Python数据类型间的转换隐式、显式-CSDN博客
Python基础知识运算符详解-CSDN博客
Python基础知识数字类型及数学函数详解-CSDN博客
Python字符串操作及方法详解一篇就搞定-CSDN博客
Python列表及其操作详解从此不再迷茫-CSDN博客
Python元组Tuple深度解析
Python字典的使用技巧一篇详解
Python条件控制深度解析成为编程必备
Python循环语句全解析附实战演练
Python函数高效编程技巧提升你的代码效率