python基础之面向过程编程,模块
面向过程编程
面向过程的核心是过程,指的是解决问题的步骤,即先干什么再干什么,就好像设计一条流水线。
优点:复杂的问题流程化,进而简单化
缺点:可扩展性差,修改流水线的任意一个阶段,都会牵一发而动全身
应用:扩展性要求不高的场景,典型案例如框架,linux内核,git
模块
1.什么是模块?
模块就是一系列功能的集合体
常用的模块形式:自定义模块,第三方模块,内置模块
四种类别:
①.使用python编写的.py文件
②.把一系列模块组织到一起的含__init__.py文件的文件夹(称之为包)
③.已被编译为共享库或DLL的C或C++扩展
④.使用C编写并链接到python解释器的内置模块
2.为什么使用模块:
使用第三方模块和内置模块可以极大地提升开发效率
使用自定义模块可以使我们的程序更清晰,方便管理,实现功能的重复利用
3.如何使用模块:import …… from …… import ……
在第一次导入模块时会做三件事:
①.以模块(被导入模块)为准,创建一个模块的名称空间
②.执行模块对应文件代码,将执行过程中产生的名字都丢到模块的名称空间
③.在当前执行文件中拿到一个模块名
注:重复导入不会执行文件
被导入模块有独立的名称空间
起别名:import time aas tm
一行多个:import time,os
from...import 与import的对比
唯一的区别就是:使用from...import...则是将spam中的名字直接导入到当前的名称空间中,所以在当前名称空间中,直接使用名字就可以了、无需加前缀
from...import *
注意:大部分情况下我们的python程序不应该使用这种导入方式,因为*你不知道你导入什么名字,很有可能会覆盖掉你之前已经定义的名字。而且可读性极其的差,在交互式环境中导入时没有问题。
4.搜索路径:
搜索路径的顺序:
①.内存中已导入的
②.内置模块
③.环境变量
5.两种用途:
①.脚本:一个文件就是整个程序,用来被执行
②.模块:文件中存放着一堆功能,用来被导入使用
当文件被当做脚本执行时:__name__ 等于'__main__'
当文件被当做模块导入时:__name__等于模块名
6.软件开发规范