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.软件开发规范

python基础之面向过程编程,模块的更多相关文章
- Python基础之面向过程编程
要求:在文件里递归找到关于包含“Python”内容的文件的绝对路径并打印出来 #定义阶段 import os,time def init(func): #装饰器的作用是使下面的生成器初始化,yield ...
- Python 迭代器-生成器-面向过程编程
上节课复习:1. 函数的递归调用 在调用一个函数的过程中又直接或者间接地调用了函数本身称之为函数的递归 函数的递归调用有两个明确的阶段: 1. 回溯 一层一层地调用本身 注意: 1.每一次调用问题的规 ...
- python基础(23):面向过程与面向对象的优劣、初识面向对象
1. 面向过程与面向对象的优劣 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程 ...
- Python函数之面向过程编程
一.解释 面向过程:核心是过程二字,过程即解决问题的步骤,基于面向过程去设计程序就像是在设计,流水线式的编程思想,在设计程序时,需要把整个流程设计出来, 一条工业流水线,是一种机械式的思维方式 二.优 ...
- 匿名函数 python内置方法(max/min/filter/map/sorted/reduce)面向过程编程
目录 函数进阶三 1. 匿名函数 1. 什么是匿名函数 2. 匿名函数的语法 3. 能和匿名函数联用的一些方法 2. python解释器内置方法 3. 异常处理 面向过程编程 函数进阶三 1. 匿名函 ...
- python函数:匿名函数、函数递归与二分法、面向过程编程
今天主要讲三大部分内容: 一.匿名函数二.函数递归与二分法三.面向过程编程 一.匿名函数: """ 1. 什么时匿名函数 def定义的是有名函数:特点是可以通过名字重复调 ...
- day22 yield的表达式的应用,面向过程编程,内置函数前几个
Python之路,Day10 = Python基础10 生成器表达式: (i for i in range(10) if i > 5)os.walk(r'文件路径')返回一个迭代器, 第一次ne ...
- PYTHON-匿名函数,递归与二分法,面向过程编程
"""匿名函数1 什么是匿名函数 def定义的是有名函数:特点是可以通过名字重复调用 def func(): #func=函数的内存地址 pass 匿名函数就是没有名字的 ...
- Python基础(9)_生成器(yield表达式形式)、面向过程编程
一.yield表达式形式 1 #装饰器,初始化含yield表达式的生成器 def init(func): def wrapper(*args,**kwargs): g=func(*args,**kwa ...
随机推荐
- 浅谈Trigger(SimpleTrigger&CronTrigger)
1.Trigger是什么 Quartz中的触发器用来告诉调度程序作业什么时候触发,即Trigger对象是用来触发执行job的. 2.Quartz中的Trigger 3.触发器通用属性: JobK ...
- 纠结于arch+xfce还是xubuntu
现在用的是ubuntu gnome版 http://www.tuicool.com/articles/6r22eyU 现在纠结于arch+xfce还是xubuntu,因为不想在gnome下面搞什么美化 ...
- linux下pthread_cancel无法取消线程的原因【转】
转自:http://blog.csdn.net/huangshanchun/article/details/47420961 版权声明:欢迎转载,如有不足之处,恳请斧正. 一个线程可以调用pthrea ...
- ifa_local 和 ifa_address
ifa_local 和 ifa_address区别联系: 1. 在配置了支持广播的接口上,与IFA_LOCAL一样,同样表示本地ip地址: 2. 对于点对点链路,IFA_ADDRESS表示的是对端的地 ...
- java===java基础学习(9)---方法参数
方法参数注意三要点: 一个方法不能修改一个基本数据类型的参数(数值型或者布尔型). 一个方法可以改变一个对象参数的状态. 一个方法不能让对象参数引用一个新的对象. package testbotoo; ...
- monkey测试===如何获取android app的Activity
方法一(推荐): 手机连接adb,手机界面在需要取得activity的界面. 推荐使用该命令: adb shell dumpsys activity top | findstr ACTIVITY 获取 ...
- C基础 工程中常用的排序
引言 - 从最简单的插入排序开始 很久很久以前, 也许都曾学过那些常用的排序算法. 那时候觉得计算机算法还是有点像数学. 可是脑海里常思考同类问题, 那有什么用呢(屌丝实践派对装逼学院派的深情鄙视). ...
- c# 多线程多文件批量下载
废话少说,先演示一张效果图 简单说下过程喽 开发过程中其实总是会碰到项目想应用下载文件~ 看其他语言有很多封装好的类库可以使用~~ 作为小白的我并没有找到很多c#的案例可参考 后找到一款“MutThr ...
- java的IO流之字符流
# 原创,转载请留言联系 输出流 FileWriter类 常见的构造方法: FileWriter(String fileName) 根据给定的文件名构造一个 FileWriter 对象.Fil ...
- 【mongo】启动mongo
输入mongo应该就可以启动了.但是我得到了一个报错信息. Failed global initialization: BadValue Invalid or no user locale set. ...