1. 什么是包?

包就是包含__init__.py的文件夹。包是一种可以通过使用“包名 .模块名”来组织python模块名称空间的方式。

  1. 包的作用?

创建包的作用就是用文件夹将文件/模块组织起来。


  1. Import 包(导入包)的本质就是在导入__init__.py文件。导入模块会做三件事,那导入包也会做相同的三件事。

包A与包B下有同名模块也不冲突。如A.a与B.a来自两个命名空间。

  1. 包的使用之import:

包,单独导入包名称实质是将包中的__init__文件导入,不会将包中所有的子模块导入。所以访问不到其他子模块中的名字。

  1. from...import  必须明确的一点import后不能带点,否则会有语法错误。
  2. 绝对导入与相对导入:
  1. 绝对导入:以执行文件的sys.path为起点开始导入。

执行文件与被导入的模块中(被导入的包中)都可以使用。

  1. 相对导入:参展当前所在文件的文件夹为起点开始查找。

符号.代表当前所在文件的文件夹,..代表上一级文件夹,...代表上一级的上一级文件。。。。。

优点:导入更加简单

缺点:只能导入包中的模块时才能使用。即相对导入只能用于包内部模块之间的相互导入,导入者与被导入者都必须存在于包内。

注意:在执行文件导入包的过程中,包内模块之间涉及到相互导入时,一定要以起点执行文件所在环境变量为起点,否则出错。

 

常用模块:

  1. time与datatime模块:

A.timestamp(时间戳):

B.time.time()1970年1月1日00:00:00按秒计算到当前的时间差,结果为浮点型。

        C.time.localtime()

D.time.strftime(“%Y-%m-%d  %X”)  格式化的时间

时间格式之间的相互转换

 

  1. random模块:

 

 

  1. json 与pickle模块:

序列化就是将内存中的数据类型转化成为另一种格式

反序列化:硬盘—》其他格式—》字典

 

为什么要序列化:持久保存程序的运行状态,数据的跨平台交互