- Python基础
- Python——首页
- Python——概述
- Python——历史
- Python——特性
- Python vs C++
- Python——HelloWorld程序
- Python——应用领域
- Python——解释器
- Python——环境搭建
- Python——虚拟环境
- Python——基本语法
- Python——变量
- Python——数据类型
- Python——类型转换
- Python——Unicode系统
- Python——字面量
- Python——运算符
- Python——算术运算符
- Python——比较运算符
- Python——赋值运算符
- Python——逻辑运算符
- Python——位运算符
- Python——成员运算符
- Python——身份运算符
- Python——运算符优先级
- Python——注释
- Python——用户输入
- Python——数字
- Python——布尔值
- Python控制语句
- Python——控制流
- Python——决策
- Python——If语句
- Python——If else
- Python——嵌套If
- Python——Match-Case语句
- Python——循环
- Python——for循环
- Python——for-else循环
- Python——While循环
- Python——break语句
- Python——continue语句
- Python——pass语句
- Python——嵌套循环
- Python函数与模块
- Python——函数
- Python——默认参数
- Python——关键字参数
- Python——仅限关键字参数
- Python——位置参数
- Python——仅限位置参数
- Python——任意参数
- Python——变量作用域
- Python——函数注解
- Python——模块
- Python——内置函数
- Python字符串
- Python——字符串
- Python——字符串切片
- Python——修改字符串
- Python——字符串连接
- Python——字符串格式化
- Python——转义字符
- Python——字符串方法
- Python——字符串练习
- Python列表
- Python——列表
- Python——访问列表元素
- Python——修改列表元素
- Python——添加列表元素
- Python——删除列表元素
- Python——循环遍历列表
- Python——列表推导式
- Python——排序列表
- Python——复制列表
- Python——合并列表
- Python——列表方法
- Python——列表练习
- Python元组
- Python——元组
- Python——访问元组元素
- Python——更新元组
- Python——解包元组
- Python——循环遍历元组
- Python——合并元组
- Python——元组方法
- Python——元组练习
- Python集合
- Python——集合
- Python——访问集合元素
- Python——添加集合元素
- Python——删除集合元素
- Python——循环遍历集合
- Python——合并集合
- Python——复制集合
- Python——集合运算符
- Python——集合方法
- Python——集合练习
- Python字典
- Python——字典
- Python——访问字典元素
- Python——修改字典元素
- Python——添加字典元素
- Python——删除字典元素
- Python——字典视图对象
- Python——循环遍历字典
- Python——复制字典
- Python——嵌套字典
- Python——字典方法
- Python——字典练习
- Python数组
- Python——数组
- Python——访问数组元素
- Python——添加数组元素
- Python——删除数组元素
- Python——循环遍历数组
- Python——复制数组
- Python——反转数组
- Python——排序数组
- Python——合并数组
- Python——数组方法
- Python——数组练习
- Python文件处理
- Python——文件处理
- Python——写入文件
- Python——读取文件
- Python——重命名和删除文件
- Python——目录
- Python——文件方法
- Python——OS文件/目录方法
- Python——OS路径方法
- 面向对象编程
- Python——OOPs概念
- Python——类与对象
- Python——类属性
- Python——类方法
- Python——静态方法
- Python——构造函数
- Python——访问修饰符
- Python——继承
- Python——多态
- Python——方法重写
- Python——方法重载
- Python——动态绑定
- Python——动态类型
- Python——抽象
- Python——封装
- Python——接口
- Python——包
- Python——内部类
- Python——匿名类和对象
- Python——单例类
- Python——包装类
- Python——枚举
- Python——反射
- Python错误与异常
- Python——语法错误
- Python——异常
- Python——try-except块
- Python——try-finally块
- Python——引发异常
- Python——异常链
- Python——嵌套try块
- Python——用户自定义异常
- Python——日志记录
- Python——断言
- Python——内置异常
- Python多线程
- Python——多线程
- Python——线程生命周期
- Python——创建线程
- Python——启动线程
- Python——连接线程
- Python——命名线程
- Python——线程调度
- Python——线程池
- Python——主线程
- Python——线程优先级
- Python——守护线程
- Python——线程同步
- Python同步
- Python——线程间通信
- Python——线程死锁
- Python——中断线程
- Python网络编程
- Python——网络编程
- Python——套接字编程
- Python——URL处理
- Python——泛型
- Python库
- NumPy教程
- Pandas教程
- SciPy教程
- Matplotlib教程
- Django教程
- OpenCV教程
- Python杂项
- Python——日期与时间
- Python——数学
- Python——迭代器
- Python——生成器
- Python——闭包
- Python——装饰器
- Python——递归
- Python——正则表达式
- Python——PIP
- Python——数据库访问
- Python——弱引用
- Python——序列化
- Python——模板
- Python——输出格式化
- Python——性能测量
- Python——数据压缩
- Python——CGI编程
- Python——XML处理
- Python——GUI编程
- Python——命令行参数
- Python——文档字符串
- Python——JSON
- Python——发送邮件
- Python——更多扩展
- Python——工具/实用程序
- Python——GUIs
- Python高级概念
- Python——抽象基类
- Python——自定义异常
- Python——高阶函数
- Python——对象内部
- Python——内存管理
- Python——元类
- Python——使用元类进行元编程
- Python——模拟和存根
- Python——猴子补丁
- Python——信号处理
- Python——类型提示
- Python——自动化教程
- Python——Humanize包
- Python——上下文管理器
- Python——协程
- Python——描述符
- Python——诊断和修复内存泄漏
- Python——不可变数据结构
- Python实用资源
- Python——问答
- Python——在线测验
- Python——快速指南
- Python——参考
- Python——速查表
- Python——项目
- Python——实用资源
- Python——讨论
- Python编译器
- NumPy编译器
- Matplotlib编译器
- SciPy编译器
Python——包
在Python中,模块是一个带有.py扩展名的Python脚本,包含类、函数等对象。Python中的包进一步扩展了模块化方法的概念。包是一个包含一个或多个模块文件的文件夹;此外,一个特殊的"__init__.py"文件可以为空,但可以包含包列表。
创建Python包
让我们创建一个名为mypackage的Python包。请按照以下步骤操作:
- 创建一个外部文件夹来保存mypackage的内容。将其命名为packagedemo。
- 在其中,创建另一个文件夹mypackage。这将是我们即将构建的Python包。两个Python模块areafunctions.py和mathfunctions.py将创建在mypackage内部。
- 在mypackage文件夹内创建一个空的"__init__.py"文件。
- 稍后,我们将在外部文件夹中存储一个Python脚本example.py来测试我们的包。
文件/文件夹结构应如下所示:
使用您喜欢的代码编辑器,将以下两个Python模块保存到mypackage文件夹中。
创建Python包的示例
# mathfunctions.py def sum(x,y): val = x+y return val def average(x,y): val = (x+y)/2 return val def power(x,y): val = x**y return val
创建另一个Python脚本:
# areafunctions.py def rectangle(w,h): area = w*h return area def circle(r): import math area = math.pi*math.pow(r,2) return area
现在让我们借助上述包文件夹之上的Python脚本测试myexample包。请参考上面的文件夹结构。
#example.py from mypackage.areafunctions import rectangle print ("Area :", rectangle(10,20)) from mypackage.mathsfunctions import average print ("average:", average(10,20))
此程序从mypackage导入函数。如果执行上述脚本,您应该得到以下输出:
Area : 200 average: 15.0
定义包列表
您可以将包中选定的函数或任何其他资源放在"__init__.py"文件中。让我们在其中放入以下代码。
from .areafunctions import circle from .mathsfunctions import sum, power
要从该包导入可用的函数,请将以下脚本另存为testpackage.py,与之前一样,保存在包文件夹上方。
定义包列表的示例
#testpackage.py from mypackage import power, circle print ("Area of circle:", circle(5)) print ("10 raised to 2:", power(10,2))
它将产生以下输出:
Area of circle: 78.53981633974483 10 raised to 2: 100
包安装
现在,我们能够从包文件夹正上方的脚本访问包资源。为了能够在文件系统的任何位置使用该包,您需要使用PIP实用程序安装它。
首先,将以下脚本保存在父文件夹中,与包文件夹同级。
#setup.py from setuptools import setup setup(name='mypackage', version='0.1', description='Package setup script', url='#', author='anonymous', author_email='[email protected]', license='MIT', packages=['mypackage'], zip_safe=False)
从命令提示符运行PIP实用程序,同时停留在父文件夹中。
C:\Users\user\packagedemo>pip3 install . Processing c:\users\user\packagedemo Preparing metadata (setup.py) ... done Installing collected packages: mypackage Running setup.py install for mypackage ... done Successfully installed mypackage-0.1
您现在应该能够在任何环境中导入包的内容。
C:\Users>python Python 3.11.2 (tags/v3.11.2:878ead1, Feb 7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import mypackage >>> mypackage.circle(5) 78.53981633974483
广告