Python中的模块与包2

版权声明:原创文章转载请注明出处~ https://blog.csdn.net/PecoHe/article/details/90056678

11.5 包

11.5.1 包的概念

包类似于操作系统中的文件夹(路径),可以对一系列的模块按照层级结构进行组织。包具有以下作用:

  • 包可以提供模块的分类管理。
  • 包提供独立的命名空间,能够解决模块的命名冲突。

11.5.2 导入包

在操作系统中,目录可以含有子目录。目录与子目录,目录与文件之间,使用特定的分隔符进行分隔。例如,Windows操作系统使用“\”,Linux系统使用“/”。同样,包也可以含有子包,包与包,包与模块之间使用“.”来分隔。
我们可以通过import来导入包,或者是导入包中的模块。与之前导入模块的语法是相同的,例如:

import 包名
import 包名.模块名
from 包名 import 模块名
from 包名.模块名 import 名称

刚才导入包的方式,我们称为绝对导入,此外,我们也可以进行相对导入。我们使用“.”来表示当前模块所在的包,使用“…”来表示当前模块所在包的父包(上级包)。例如:

from . import 名称

11.5.3 init.py

在每一个包中,应该同时配有一个__init__.py文件(模块),作用如下:

  • 该文件用来标记,当前的路径是一个包,而不是普通的目录。这样可以避免目录名与模块名造成混淆,影响在搜索路径上,后续模块的导入。
  • 该文件为包的初始化模块,当导入包,或者导入包的子包(子模块)时,该模块会自动执行。因此,我们可以在__init__.py中编写一些包的初始化语句。
  • 在__init__.py中定义的,具有全局作用域的名称,可以使用包名.名称进行访问(这些名称就会成为包(对象)的属性)。

11.5.4 all

我们可以在__init__.py中定义__all__变量,来控制导入哪些名称,这与模块中的定义的__all__变量意义相同,也是一个字符串的列表类型,指定能够导入的名称。

11.6 数学模块

11.6.1 math

math模块提供了与数学计算相关的功能。常用的功能如下:

pi:返回圆周率的值。
e:返回数学常数。
ceil(x):返回大于等于x的最小整数(向上取整)。
floor(x):返回小于等于x的最大整数(向下取整)。
exp(x):返回e的x次幂。相当于math.e ** x。
pow(x, y):返回x的y次幂。相当于x ** y。
log(x[, base]):返回基于base为底,x的对数。base默认为e。
fabs(x):返回x(视为float类型)的绝对值。
factorial(x):返回x的阶乘。x需要是int类型,或者是小数点为0的浮点类型,并且不能为负。
fmod(x, y):返回x与y取余的结果。注意:x % y是取模,二者结果可能是不同的。
fsum(iterable):返回可迭代对象中每个值累计求和后的结果。
gcd(x, y):返回x与y的最大公约数。x与y需要是整数类型(greatest common divisor)。
sqrt(x):返回x的平方根。

11.6.2 random

random模块提供生成随机数的功能(伪随机数)。常用功能如下:

random():返回一个0 ~ 1之间的浮点数,包括0,不包括1。
randint(a, b):返回一个a ~ b之间的整数。包括a与b。
randrange(stop) / randrange(start, stop[, step]):参数与range函数的意义相同,相当于从相同参数的range函数可能产生的值中,随便选择一个。
uniform(a, b):返回a与b之间的浮点数,包括端点。
choice(seq):从seq(可迭代对象)中随机选择一个元素。如果序列为空,则产生错误。
choices(population, weights=None, *, cum_weights=None, k=1):从population(可迭代对象)中选择k个元素,放入一个列表并返回。如果提供了weights(权重)或cum_weights(累积权重),则元素的选择概率会根据权重(累积权重)决定。权重与累积权重不能同时指定,因为权重内部会转换成累积权重,这样会造成不一致。如果没有指定权重与累积权重,则各个元素的选择概率相同。
sample(population, k):从population(可迭代对象)中选择k个不同的元素,返回元素组成的列表。
shuffle(x[, random]):对x(序列)进行洗牌(随机分配每个元素的位置)。random是一个可选的生成随机数的函数,函数的返回值为[0, 1),默认使用random模块的random函数。

11.7 日期与时间

11.7.1 time

time模块提供关于时间的操作。

11.7.2 datetime

datetime模块提供date,time,datetime,timedelta等类,供我们对日期与时间进行操作。与time模块相比,datetime模块还额外增加了日期的加减与比较运算。

11.8 系统相关

11.8.1 sys

sys模块提供一些与解释器相关的功能。sys提供的属性很多,不过多数并不常用,这里仅介绍一些常见的属性。

argv:返回一个列表,列表的第一个元素为命令行运行的文件名称,往后的每个元素为命令行在文件名称后面传递的每一个参数。当我们要进行一些全局性,系统相关的配置时,就可以使用命令行来传递参数。所传递的参数就可以通过argv来进行获取。
version:返回Python的版本信息。
copyright:返回Python的版权信息。
path:返回模块的搜索路径。
float_info:返回浮点类型(float)的相关信息。
platform:返回操作系统信息。
exit():退出Python解释器,终止程序的执行。
getsizeof(object):返回object(对象)的大小(以字节为单位)。
setrecursionlimit(n):设置最大递归的深度。

猜你喜欢

转载自blog.csdn.net/PecoHe/article/details/90056678