Python基础——类6(模块、包、标准库)

一、模块(module)

  • 模块化指将一个完整的程序分解为一个一个小的模块,通过将模块组合,来搭建出一个完整的程序

  • 模块化的有点:

    • ① 方便开发
    • ② 方便维护
    • ③ 模块可以复用!
  • 在Python中一个py文件就是一个模块,要想创建模块,实际上就是创建一个python文件

    • 注意:模块名要符号标识符的规范
  • 在一个模块中引入外部模块

    • ① import 模块名 (模块名,就是python文件的名字,注意不要py)
    • ② import 模块名 as 模块别名
  • 可以引入同一个模块多次,但是模块的实例只会创建一个

  • import可以在程序的任意位置调用,但是一般情况下,import语句都会统一写在程序的开头

  • 在每一个模块内部都有一个__name__属性,通过这个属性可以获取到模块的名字

  • __name__属性值为 __main__的模块是主模块,一个程序中只会有一个主模块
    主模块即我们直接通过 python 执行的模块

实例1

1. 创建 test_module模块(test_module.py文件)

在这里插入图片描述

2. 创建demo.py,导入创建的模块(即调用test_module模块)

在这里插入图片描述

实例2

1、创建 m模块(m.py文件)

在这里插入图片描述

# m.py
# 可以在模块中定义变量,在模块中定义的变量,在引入模块后,就可以直接使用了
a = 10
b = 20

# 添加了_的变量,只能在模块内部访问,在通过import * 引入时,不会引入_开头的变量
_c = 30

# 可以在模块中定义函数,同样可以通过模块访问到
def test():
    print('test')

def test2():
    print('test2')

# 也可以定义类    
class Person:
    def __init__(self):
        self.name = '孙悟空'

# 编写测试代码,这部分代码,只要当当前文件作为主模块的时候才需要执行
#   而当模块被其他模块引入时,不需要执行的,此时我们就必须要检查当前模块是否是主模块  
if __name__ == '__main__':
    test()
    test2()
    p = Person()
    print(p.name)

2、运行demo.py

在这里插入图片描述

# demo.py
import m

# 访问模块中的变量:模块名.变量名
print(m.a , m.b)
m.test2()
p = m.Person()
print(p.name)

  • 也可以只引入模块中的部分内容
  • 语法: from 模块名 import 变量,变量…
    • from m import Person
    • from m import test
    • from m import Person,test
    • from m import * # 引入到模块中所有内容,一般不会使用
  • 也可以为引入的变量使用别名
    • 语法:from 模块名 import 变量 as 别名
    • from m import test2 as new_test2

二、包 Package

  • 包也是一个模块
  • 当我们模块中代码过多时,或者一个模块需要被分解为多个模块时,这时就需要使用到包
  • 普通的模块就是一个py文件,而包是一个文件夹
  • 包中必须要一个一个 __ init __.py 这个文件,这个文件中可以包含有包中的主要内容
  • __ pycache__ 是模块的缓存文件
  • py代码在执行前,需要被解析器先转换为机器码,然后再执行
    • 所以我们在使用模块(包)时,也需要将模块的代码先转换为机器码然后再交由计算机执行
    • 而为了提高程序运行的性能,python会在编译过一次以后,将代码保存到一个缓存文件中
    • 这样在下次加载这个模块(包)时,就可以不再重新编译而是直接加载缓存中编译好的代码即可

1、创建Hello包

在这里插入图片描述
在这里插入图片描述

运行demo.py

在这里插入图片描述

三、python标准库

为了实现开箱即用的思想,Python中为我们提供了一个模块的标准库,在这个标准库中,有很多很强大的模块我们可以直接使用,并且标准库会随Python的安装一同安装

sys模块,它里面提供了一些变量和函数,使我们可以获取到Python解析器的信息或者通过函数来操作Python解析器
  • sys.argv
  • 获取执行代码时,命令行中所包含的参数
  • 该属性是一个列表,列表中保存了当前命令的所有参数
  • print(sys.argv)
  • sys.modules
    • 获取当前程序中引入的所有模块
    • modules是一个字典,字典的key是模块的名字,字典的value是模块对象
  • sys.path
    • 他是一个列表,列表中保存的是模块的搜索路径
  • sys.platform
    • 表示当前Python运行的平台
  • sys.exit()
    • 函数用来退出程序
  • sys.exit(‘程序出现异常,结束!’)
os模块
  • os 模块让我们可以对操作系统进行访问
    • os.environ
    • 通过这个属性可以获取到系统的环境变量
  • os.system()
    • 可以用来执行操作系统的名字
  • os.system(‘dir’)
  • os.system(‘notepad’)
pprint 模块它给我们提供了一个方法 pprint() 该方法可以用来对打印的数据做简单的格式化
  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值