一、控制台运行Python文件
1.Dos常用命令
cd
:切换目录dir
:查看目录下的文件和文件夹cls
:清楚屏幕内容exit
:退出控制台
2.执行Python文件
python
:进入python控制台python "文件路径"
:执行python文件
quit()/exit()
:退出python控制台
二、Python模块介绍
1.Python模块定义
- 模块就是程序,保存形式其实就是一个个的py文件,模块名字就是不含
.py
后缀的文件名 - 例如
random
模块,我们可以在Python安装目录下找到random.py
文件,文件random.py
就是一个名字叫做random
的模块
2.模块的分类
- Python标准模块(Python内置模块、Python标准库)
- 第三方模块/库 (pypi.org)
- 自定义模块
3.Python模块的好处
- 可维护性强:各个模块之间相互独立,便于更新维护模块内容
- 方便代码重用
三、模块的导入及定位
1.定位
- 定位:
当前包--->内置函数--->sys.path(环境变量)
- 在导入模块时,pyhon首先会在当前目录下寻找有没有该模块,如果没有,则到内置函数目录下去寻找,如果还是没有,就会到环境变量中寻找
- 可以通过导入
sys
模块,调用sys.path.append('路径')
来临时加入环境变量,关闭本次运行则会消除掉临时加入的环境变量 - 在Pycharm中运行时,会到当前项目目录下去寻找是否有该模块,为了便于演示我们把
test1.py
移到D:\
目录下 - 未设置环境变量,则无法正确导入模块
- 设置临时环境变量后,顺利找到模块
2.导入
- 导入:
import os
- 导入顺序:一般而言尽量按照,标准模块、第三方模块、自定义模块的顺序来进行导入
3.模块的测试
在定义模块时,很多时候需要对模块的函数进行测试,这时候可以在模块中使用语句if __name__ == '__main__':
来进行模块测试,该语句只针对运行此模块文件时执行,不会影响到其他导入该模块程序的使用
def say_hello():
print('Hello')
if __name__ == '__main__':
say_hello()
四、模块的属性
1.dir
dir(模块名)
:列出对象的所有属性及方法,返回一个列表import test1 print(dir(test1)) print(test1.__doc__) print(test1.__name__)
__name__
:表示模块名称__doc__
:表示模块的注释文档__file__
:文件全路径
2.help
help(模块名/模块名.函数)
:查看类,方法的帮助信息import test1 help(test1)
五、包的介绍及使用
1.包的简介
- 可以用来组织模块(可以包含其他模块的模块)
- 目录必须包含文件
__init__.py
- 包可以解决模块重名问题
2.__init__.py
- 注意是英文半角的双下划线
- 将一个文件夹变为一个模块
- 导入包实际上是导入执行它的
__init__.py
- 一般为空,可以批量导入所需模块
3.包的创建
在Pycharm中,右键项目新建Python Package
或者新建一个目录Directory
再在目录下创建__init__.py
文件
4.包的引用
- 引入整个包:
import module
- 局部导入:例如在函数体内进行模块导入,就成为局部导入,这样的导入只能在该函数体内调用模块的功能
- 只引入所需要的属性和方法:如果想只导入需要的函数模块,可以通过
from module.xx.xx import 模块/函数名
,可以引入包内的某个模块或者精细到包内某个模块中的某个函数 - 指定别名:
from module.xx.xx import xx as rename
- 引入所有:
from module.xx.xx import *
5.注意事项
- 各种叫法:包的引入、模块导入、模块引入
- 模块导入后的重命名(as)遵循Python变量的命名规范
- 导入包其实就是导入包下的
__init__.py
文件,该文件默认是空白的,如果想要通过导入包后通过module.xx.xx()
的方式去直接调用包内某个模块的函数,需要逐级在每一层的包中的__init__.py
文件中进行导入- 如下图,我们创建
pay
包并创建子包alipay
和模块alipay.py
并定义了ali_pay()
函数
- 如果此时在其他py文件中直接导入
pay
包是无法通过pay.alipay.ali_pay()
来调用的
- 需要在
pay
包中的__init__.py
文件中导入alipay
模块后才可以
- 其中
.
代表__init__.py
文件所在目录,可以用相对路径来代替,如pay.alipay
- 如下图,我们创建