python学习-面向对象编程2
本文介绍 python 面向对象编程,包括模块、包、模块的使用和高级特性、模块化编程设计、pip 安装第三方库的使用等。
供自己以后查漏补缺,也欢迎同道朋友交流学习。
引言
在前面的学习中,我们已经了解了 python
类的定义和使用,继承和多态的概念,以及类的封装和高级特性。
在这篇文章中,我们将继续深入学习 python
面向对象编程的高级特性,包括模块、包、模块的使用和高级特性、模块化编程、第三方库的使用等。
模块和包
模块是 Python
中的基本组织单元,它是一个包含 Python 定义和声明的文件。
模块可以定义函数、类和变量,也可以包含可执行的代码。
模块的主要作用是封装特定的功能,使得代码更加模块化、可重用和易于维护。
创建模块
我们创建一个 math_utils.py
的文件,其中包含一些数学相关的函数:
# math_utils.py
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
return x / y
导入模块
使用 import
语句导入模块。
import math_utils
# 使用模块的功能
result1 = math_utils.add(5, 3)
print('@@@@ 使用模块的功能', result1)
# 输出: @@@@ 使用模块的功能 8
# 导入模块中的特定内容
from math_utils import subtract
# 使用导入的函数
result2 = subtract(5, 3)
print('@@@@ 导入模块中的特定内容', result2)
# 输出: @@@@ 导入模块中的特定内容 2
# 给模块或函数重命名
import math_utils as mu
result3 = mu.multiply(5, 3)
print('@@@@ 给模块或函数重命名', result3)
# 输出: @@@@ 给模块或函数重命名 15
包
包
是组织的hierarchially的模块集合。它们定义了一个命名空间
,并且可以包含多个模块
和子包
。
要创建一个包,你需要在一个目录中创建一个__init__.py
文件,这个文件可以为空,但它告诉 Python 解释器
这个目录应该被视为一个包。
graphics/
__init__.py
shapes.py
colors.py
init.py文件的作用:
- 它标记一个目录为
Python
包。 - 它定义了包的命名空间,你可以在这个文件中定义变量和函数,这些可以被包内的其他模块访问。
- 它允许你控制包的初始化过程,例如,你可以在这个文件中执行包级别的初始化代码。
模块高级特性
模块的__name__属性
每个模块都有一个__name__
属性,当模块被直接运行时,它的值为'main'。这个属性通常用于判断模块是被导入还是被直接运行,从而执行不同的代码。
if __name__ == '__main__':
print("这段代码只有在模块被直接运行时才会执行")
else:
print("这段代码只有在模块被导入时才会执行")
模块的重新加载
在 Python
中,如果你修改了模块的代码并希望立即看到变化,可以使用 reload()
函数重新加载模块。这在开发过程中非常有用,因为你不需要重启解释器
来看到修改后的效果。
from importlib import reload
import math
# 重新加载math模块
reload(math)
模块化编程
模块化设计
良好的模块化设计可以使代码更易于理解和维护,同时提高代码的可重用性。
功能单一
:每个模块应该有一个明确的功能,并且只负责一个逻辑上的功能单元。高内聚,低耦合
:模块内的代码应该紧密相关(高内聚),而模块之间的依赖关系应该尽可能少(低耦合)。接口明确
:模块之间的接口应该清晰定义,使得模块之间的交互简单明了。
代码重用
模块化
是提高代码重用性
的关键。通过将代码分解成模块,你可以在不同的项目中重用相同的模块。
封装通用功能
:将通用的功能封装成模块,这样在需要时可以直接导入和使用。提取重复代码
:当发现代码中有重复的部分时,应该将它们提取出来,放入一个单独的模块中。使用配置文件
:对于不同的环境或条件,使用配置文件而不是修改代码来适应不同的情况。编写可配置的模块
:使模块能够接受参数或配置,以适应不同的使用场景。
第三方库的使用
使用pip安装
pip
是 Python 的包管理工具,它允许你从 Python 包索引(PyPI)安装和管理第三方库。
# 安装requests库
pip install requests
# python3 安装requests库
pip3 install requests
# 安装numpy和pandas库
pip install numpy pandas
# python3 安装numpy和pandas库
pip3 install numpy pandas
常用第三方库
requests
:requests 是一个简单易用的 HTTP 库,用于发送各种HTTP请求。
import requests
response = requests.get('https://api.github.com')
print(response.json()) # 输出JSON响应内容
numpy
:numpy 是一个强大的数学库,用于处理大型多维数组和矩阵,以及执行高级数学函数和操作。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(np.mean(arr)) # 输出数组的平均值
pandas
:pandas 是一个数据处理库,用于处理和分析结构化数据。
import pandas as pd
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
'Age': [28, 23, 34, 29]}
df = pd.DataFrame(data)
print(df.head()) # 输出DataFrame的前几行
python学习专栏系列
- python学习-基础学习1
- python学习-基础学习2
- python学习-基础学习3
- python学习-面向对象编程1
- python学习-面向对象编程2
- python学习-文件读写
- python学习-程序异常处理
- python学习-正则
- python学习-处理word文档
- python学习-处理pdf文档
- python学习-处理excel文档
- python学习-处理csv文档
- python学习-使用matplotlib绘制图表
- python学习-处理JSON数据
- python学习-SQLite数据库
- python学习-多线程处理
- python学习-网络爬虫