IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python 模块 -> 正文阅读

[Python知识库]Python 模块

概述

Python中模块主要分为:标注模块(库)、第三方模块(库)、自定义模块
一个模块是一个扩展名为 *.py 的文件
使用模块的优点:

  • 每个模块有特定的应用域,可以有效避免函数名和变量名冲突
  • 引用模块可以使文件更小且分工明确,更容易查找代码
  • 可以提高代码的可重用性
  • 可以有选择的使用

创建自定义模块

一般情况下模块包含以下几部分:

  • 函数
  • 变量
  • 可执行代码

模块应当保存为名称为 模块名.py 的文件,且模块名不能为 Python 自带的标准模块名称。示例如下:
创建一个模块,写入如下代码,并保存为名为 calculate.py 的文件

def add(a,b):	# 加法
	return round(a + b,1)

在同一文件夹下,创建一个文件,并输入如下代码进行模块引用

import calculate		# 导入模块
a = 0.1 
b = 0.2 
print(a + b)		# 直接输出 a+b
print( calculate.add(a,b)	# 通过自定义 模块 计算 a+b

运行结果:

0.30000000000000004	#因为精度问题造成浮点
0.3

导入模块

使用 import 导入模块

语法: import moduleName [as alias] ,其中 as alias 为可选参数,是引用模块的备用名称。
import 还可以同时导入多个模块,多个模块之间用 , 分割
示例 略

使用 from ··· import 导入模块

语法:form modelName import member

关键词说明
modelName要导入的模块名称
member要从模块中导入的 变量、函数、类 等
可以同时导入多个定义,之间需要用 , 分隔
如果需要导入模块中的全部定义,使用 * 作为 member 参数即可

示例讲解,如何导入两个包括同名函数的模块:
创建两个模块 “rectangle.py”(矩形),“circular.py”(圆形),它们都包含计算周长(Perimeter)和面积(area)的函数
第一步,创建矩形模块 rectangle.py

def girth(width,height):
    '''计算周长的函数'''
    return (width+height)*2

def area(width,height):
    '''计算面积的函数'''
    return width*height 
    
if __name__ =='__main__':   # 测试模块,以主程序运行,后面章节会做详细介绍。
    print(area(10,20))

第二步,创建圆形模块 cricular

import math
PI = math.pi    # 获取圆周率

def girth(r):
    '''计算周长的函数'''
    return round(2*PI*r,2)

def area(r):
    '''计算面积的函数'''
    return round(PI*r*r,2)

if __name__ =='__main__':   # 测试模块,以主程序运行,后面章节会做详细介绍。
    print(area(10))

第三步,导入模块。

# 以下为错误方法
from rectangle import * # 导入矩形模块
from cricular import *  # 导入圆形模块

if __name__ == '__main__':
    print('圆形周长:', girth(10))        # 计算圆形周长
    print('矩形周长:', girth(10,20))    # 计算圆形周长
# 以下为正确方法
import rectangle as r	# 导入矩形模块
import cricular  as c	# 导入圆形模块

if __name__ == '__main__':
    print('圆形周长:', c.girth(10))        # 计算圆形周长
    print('矩形周长:', r.girth(10,20))    # 计算圆形周长

模块搜索目录

以上案例是将模块与需要运行的文件放在同一个文件夹的,当二者不在同一个文件夹时,就不能够正常引用了。
究其原因,需要清楚在使用 import 语句导入模块时,它是按照什么顺序去搜素模块文件的,我们可以通过标准模块 sys 中的 path 变量来获取。 例如:

import sys			# 导入 sys 模块
print(sys.path)		# 通过 .path 方法获取文件搜索路径及顺序

输出结果:

['C:\\ProgramData\\Anaconda3\\python38.zip', 'C:\\ProgramData\\Anaconda3\\DLLs', 'C:\\ProgramData\\Anaconda3\\lib', 'C:\\ProgramData\\Anaconda3', '', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\locket-0.2.1-py3.8.egg', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\风转砂\\.ipython']

可以看到,程序输出了一个地址列表,其中的地址就是 python 在导入模块时,默认搜索的路径顺序,以上路径查找不到时,python 则不会再进行搜索了。
此时导入模块就需要进行“搜索目录”,python 共提供了三种方法:

  • 临时添加
  • 增加 .pth 文件 (推荐)
  • 在 PYTHONPATH 环境变量中进行添加

临时添加

语法:

import sys	# 导入 sys 模块
sys.path.append('moduleFloderPath')		# 通过 sys.path.append() 方法添加需要导入的模块的路径
import moduleName	# 导入需要的模块
block	# 程序体

增加 .pth 文件

在python的安装目录\Lib\site-packages 文件夹下,创建一个 .pth 文件,在文件中输入:

# 注释说明
要导入模块所在的文件夹地址

修改环境变量

方法如下:在这里插入图片描述
在这里插入图片描述

创建包

在文件夹中创建一个名为 settings 的文件夹,然后在 settings 文件夹中创建一个名为 __init__.py 的空文件,此时 settings 文件夹就成为了一个 “包” ,之后就可以在包中创建所需要的模块了。
在这里插入图片描述

使用包

所谓使用包,就是利用 import 语句,从包中调取模块,通常有三种模式

示例:在包的同一级文件夹( D:\python )下创建一个 demo.py 文件,对 cricular 模块进行引用

  • import + 完整包名.模块名
import settings.cricular   	#导入模块 cricular (圆形)
print('周长 girth:', settings.cricular.girth(10))     # 计算并输出 周长

应当注意,在使用模块的方法时,也应引用完整的包名,即 settings.cricular.girth(10)
当然,也可以使用以下代码实现更简洁的操作

import settings.cricular as c  		#导入模块 cricular (圆形)
print('周长 girth:', c.girth(10))	# 计算并输出 周长
  • from + 完整包名 + import + 模块名
from settings import cricular   			# 导入模块 cricular (圆形)
print('周长 girth:', cricular.girth(10)) 	# 计算并输出 周长

注意,使用该方法时,引用模块不需要引用包名,即 cricular.girth(10)
同样也可以使用以下代码,实现更简洁的操作

from settings import cricular as c  	# 导入模块 cricular (圆形)
print('周长 girth:', c.girth(10))     	# 计算并输出 周长
  • form + 完整报名.模块名 + import + 定义名
from settings.cricular  import  girth  	# 导入模块 cricular 中的 grith 方法
print('周长 girth:', girth(10))     	# 计算并输出 周长

注意,使用该方法时,引用模块的方法时,不需要引用包名和模块名,可以直接使用方法,即 girth(10)
同样也可以使用以下代码,实现更简洁的操作

from settings.cricular  import  girth as g 	# 导入模块 cricular 中的 grith 方法
print('周长 girth:', g(10))     			# 计算并输出 周长

导入模块

导入标准模块

import random	# 导入生产随机数的模块
number = random.randint(0,10)
print(number)

Python 提供了标准库的帮助文档,文档为 安装目录\Python\Python3.6\Doc 地址下的 python364.chm 文件

第三方库的下载与安装

主要有两种方法:

  • 可以在网址 https://pypi.org/ 下载,或者原网址 http://pypi.python.org/pypi
  • 使用 pip 命令安装
    pip \<command\> [modulename]
参数说明
command要执行的操作install (安装模块)
uninstall(卸载模块)
list(列举已经安装的第三方模块)
modulename模块名称如果 command 参数的值为 install , uninstall 时,参数是必需的;
否则,参数不可选

注意,以上命令不是在 IDLE 中执行,而是要在 cmd 中执行的。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 10:43:09  更:2021-07-23 10:46:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/25 15:12:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计