python学习——第十三弹
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习——第十三弹相关的知识,希望对你有一定的参考价值。
前言
上一篇文章 python学习——【第十二弹】中学习了python中的深拷贝和浅拷贝,这篇文章接着学习python中的模块。
什么是模块
在python中,一个文件(以“.py”为后缀名的文件)就叫做一个模块,每一个模块在python里都被看做是一个独立的文件。
模块可以被项目中的其他模块、一些脚本甚至是交互式的解析器所使用,它可以被其他程序引用,从而使用该模块里的函数等功能,使用Python中的标准库也是采用这种方法。
python中的常见的系统内置模块有:
os模块:os模块包含普遍的操作系统功能
sys模块:提供了一系列有关Python运行环境的变量和函数
random模块:random模块用于生成随机数
time 模块: 主要包含各种提供日期、时间功能的类和函数
datetime模块:对time模块的一个高级封装
shutil模块:是一种高层次的文件操作工具
logging模块:将日志打印到了标准输出中
re模块:可以直接调用来实现正则匹配
pymysql模块:连接数据库,并实现简单的增删改查
threading模块:提供了更强大的多线程管理方案
queue模块:实现了多生产者,多消费者的队列
json模块:用于字符串和数据类型间进行转换json
模块的导入
python中导入模块的方法有:
import 模块名称 [as别名]
from 模块名称 import 函数/变量/类
我们用例子具体实现下:
import 模块名称 [as别名]
# 例子1 导入数学运算模块 math
import math
print(math,id(math),type(math))
print(math.pi) #返回一个浮点数 3.141592653589793,表示圆周率。
print(------------------进行math模块中相关函数的使用-----------/)
print(dir(math))
print(pow()函数的使用,math.pow(2,3),type(math.pow(2,3))) #2的3次方
print(向上取整,math.ceil(3.00001)) #向上取整 4
print(向下取整,math.floor(3.99999)) #向下取整3
from 模块名称 import 函数/变量/类
# 只引入math模块中的pi
from math import pi
print(pi) #3.141592653589793
当我们使用该方法引入模块时,要注意我们导入的是该模块中的pi常量,如果此时我们再引入math模块中其他的函数时程序就会报错:
from math import pi
# 尝试引入pow()函数
print(pow(2,3),type(pow(2,3))) #8 <class int>
我们看到当我们再尝试引入没有进行导入的math函数时,会发现竟然也有返回值; 但是这里的pow()函数并非math模块中的函数,他输出的类型是int型而非math模块中pow函数的输出类型float型,因此虽然出现了返回值,但它调用的并非math模块中的pow()函数。
自定义模块
了解了什么时python中的模块后,我们就可以自定义模块了:
自定义模块将python文件的名字命名为一个简洁、见名知意的文件名。
定义了一个cal模块
def add(a,b):
return a+b
def div(a,b):
return a/b
然后进行自定义模块的导入:
# 引入新建的cal模块
import cal
print(cal.add(10,30))
print(cal.div(10,20))
# 只导入cal模块中的add函数
from cal import add
print(add(10,20))
# print(math.add(10,20)) #NameError: name math is not defined
进行主程序运行
在每个模块的定义中都包括一个模块名称的变量 __name__ ,变量的值是__main__。 程序可以检查该变量以确定它们在哪个模块中执行; 如果一个模块不是被导入到其他的程序中执行的, 那么它可能在解释器的顶级模块中执行。
我们自定义一个模块cal2:
在index1.py中对其进行导入:
我们发现当我们在运行index1的文件时,运行结果是将cal2也运行了,也就是说cal2被index1导入后会在index1运行时也运行,如果我们想指定某个程序运行怎么办呢?
这就需要在cal2这个模块中添加主程序运行代码:
def add(a,b):
return a+b
# 直接运行cal2程序 只有点击运行cal2这个文件时才能运行如下语句
if __name__ ==__main__:
print(add(10,30))
这样就能避免模块被导入后,和新的文件同时运行了。
每篇一语
世上无难事,只怕有心人!
如有不足,感谢指正!
以上是关于python学习——第十三弹的主要内容,如果未能解决你的问题,请参考以下文章
『PyTorch』第十三弹_torch.nn.init参数初始化