本站消息

  出租广告位,需要合作请联系站长

  今日名言-想象你自己对困难作出的反应,不是逃避或绕开它们,而是面对它们,同它们打交道,以一种进取的和明智的方式同它们奋斗 。——马克斯威尔·马尔兹

  今日名言-用谅解、宽恕的目光和心理看人、待人。人就会觉得葱笼的世界里,春意盎然,到处充满温暖。——蔡文甫


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Python 模块

发布于2021-07-25 06:57     阅读(1263)     评论(0)     点赞(23)     收藏(4)


概述

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 中执行的。

原文链接:https://blog.csdn.net/qq_25582033/article/details/118945826



所属网站分类: 技术文章 > 博客

作者:小可爱不要爱

链接:http://www.pythonpdf.com/blog/article/446/8ac117706af50e87a3b9/

来源:编程知识网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

23 0
收藏该文
已收藏

评论内容:(最多支持255个字符)