开发过程中,程序代码会越来越多,如果直接放在一个文件里,代码会越来越长。–>代码不易维护
为了编写方便维护的代码,可以吧不同功能的代码分组,保存在不同的文件里。这样每个文件包含的代码量就会比较少,方便维护
在python中,一个.py文件就可以称为一个模块
即:
- 包含相应功能的函数以及变量,py则以’’.py’'为后缀名
- 模块可以为其他程序引用,以使用该模块所对应的函数或者变量
使用的模块的优点:
- 提高代码的可维护性
- 提高代码的复用性
- 可以导入很多功能的模块
- 标准库模块
- 第三方模块
- 自定义模块
- 避免变量名重复
python中导入模块的常用方式:
import 模块名称
import 模块名称 as 新名称
from 模块名称 import 函数名
区别:
- import模块名称 和import模块名称as新名称
- 会导入整个模块
- 如果我们需要使用某个函数,必须”模块名称.函数名()"的形式来调用相应的函数(这种方法更利于代码可读性(优先推荐))
- import 模块名称 as 新名称,重新命名导入的模块,通常使用名称简洁,方便使用。
- from 模块名称 import 函数名
- 只导入了某一函数,而不是一整个模块
- 可以直接函数名称去调用函数,而无需在函数名称前面加模块名称
- 如果我们的程序语句很多,不建议采用此种方法(原因:调用很多模块后,可能造成函数名重名,引发错误)
import random
random.random()
from random import *
random()
注意
import语句的对应模块顺序(PEP) 程序最上方
- python标准模块
- 第三方
- 自定义模块
os模块
Operator System
os模块是python标准库中用于访问操作系统功能的模块。
使用OS模块提供的接口,能实现跨平台访问。
最常见的操作
module and package
包:包是通过使用’.模块名’来组织python模块名称空间的方式。
包就是包含_init_.py
文件的文件夹。
- 目的:用文件夹将模块组织起来。
注意:
- py3,即使包里没有
_init_.py
也可以用。 - py2,如果没有,则肯定报错。
创建包的目的不是为了运行,而是为了被导入使用。
包的本质依然还是模块。
使用时:
- import导入
- 导入带点的
- 点的最左边一定是包名
导入时:
都是 双下划线!!!!
- 产生名称空间的名字源于文件
- import包,名称空间同样源于文件
__init__.py
导入包的本质导入他
__init__.py
文件中写入 : from . import 模块
导入的模块必须是一个不包含点,否则报错
__all__=['students','versions'......]
在s/api/vers.py中导入s/cmd/m.py
#在s/api/vers.py中
from s.cmd import m
m.m.create_resource()
https://packaging.python.org/tutorials/packaging-projects/
字符编码
python主要是识别文件内容,而不是关心扩展名。—>解释器
字符—>(机器翻译)—>二级制
字符如何对应特的数字的标准,这个标准就是字符编码。
ASCII
GBK
Unicode
UTF-8
- 对于英文字符来说,1bytes
- 中文字符:3bytes
对于内存而言—>Unicode