发布于2021-07-25 06:57 阅读(1276) 评论(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 moduleName [as alias]
,其中 as alias
为可选参数,是引用模块的备用名称。
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
文件 (推荐)语法:
import sys # 导入 sys 模块
sys.path.append('moduleFloderPath') # 通过 sys.path.append() 方法添加需要导入的模块的路径
import moduleName # 导入需要的模块
block # 程序体
在python的安装目录\Lib\site-packages 文件夹下,创建一个 .pth
文件,在文件中输入:
# 注释说明
要导入模块所在的文件夹地址
方法如下:
在文件夹中创建一个名为 settings
的文件夹,然后在 settings
文件夹中创建一个名为 __init__.py
的空文件,此时 settings
文件夹就成为了一个 “包” ,之后就可以在包中创建所需要的模块了。
所谓使用包,就是利用 import
语句,从包中调取模块,通常有三种模式:
示例:在包的同一级文件夹( D:\python
)下创建一个 demo.py
文件,对 cricular
模块进行引用
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 settings import cricular # 导入模块 cricular (圆形)
print('周长 girth:', cricular.girth(10)) # 计算并输出 周长
注意,使用该方法时,引用模块不需要引用包名,即 cricular.girth(10)
同样也可以使用以下代码,实现更简洁的操作
from settings import cricular as c # 导入模块 cricular (圆形)
print('周长 girth:', c.girth(10)) # 计算并输出 周长
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/
来源:编程知识网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!