python 3 面向过程编程

核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就像设计好一条工业流水线,是一种机械式的思维方式。

1、优点:程序结构清晰,可以把复杂的问题简单化,流程化。

2、缺点:可扩展性差,改动一个地方很可能要改多个地方,牵一发而动全身。

3、应用场景:linux内核,git,httpd,shell脚本.

grep -rl 'error' /dir/

def init(func):def wrapper(*args,**kwargs):g=func(*args,**kwargs)next(g)return greturn wrapper#第一阶段:找到所有文件的绝对路径import os@initdef search(target):while True:filepath=yieldg=os.walk(filepath)for pardir,_,files in g:for file in files:abspath=r'%s\%s' %(dirpath,file)target.send(abspath)#第二阶段:打开文件

@initdef opener(target):while True:abspath=yieldwith open(abspath,'rb') as f:target.send((abspath,f))#第三阶段:循环读出每一行内容

@initdef cat(target):while True:abspath,f=yield #(abspath,f)for line in f:res=target.send((abspath,line))if res:break#第四阶段:过滤

@initdef grep(pattern,target):tag=Falsewhile True:abspath,line=yield tagtag=Falseif pattern in line:target.send(abspath)tag=True#第五阶段:打印该行属于的文件名

@initdef printer():while True:abspath=yieldprint(abspath)g = search(opener(cat(grep('error'.encode('utf-8'), printer()))))g.send(r'E:\project\PY18\lianxi\111222')

View Code

转载于:https://www.cnblogs.com/qiangyuge/p/7277272.html

python 3 面向过程编程相关推荐

  1. python基础---面向过程编程

    面向过程编程 核心是过程二字,过程即解决问题的步骤,基于面向过程去设计程序就像是在设计一条工业流水线,是一种机械式的思维方式 优点:程序结构清晰可以把复杂的问题简单化,流程化 缺点:可扩展性差,一条流 ...

  2. 面向对象,面向过程编程

    很多时候,我们都是用面向对象语言进行面向过程编码.     1. 滥用 getter.setter 方法. 滥用getter,setter方法很容易造成违反封装特性.数据没有访问权限控制,任何代码都可 ...

  3. 面向对象与面向过程编程

    从语言角度来讲: C是面向过程编程: C++一半是面向过程编程,一半是面向对象编程: Java是面向对象编程. 一.什么是面向对象编程与面向过程编程? 面向过程(Procedure Oriented ...

  4. python全栈开发-Day11 迭代器、生成器、面向过程编程

    一. 迭代器 一 .迭代的概念 迭代器即迭代的工具,那什么是迭代呢? 迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而 ...

  5. python 递归,迭代器,生成器,面向过程编程

    一.递归和迭代 1.递归:函数调用自身 2.迭代:一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不是迭代print('== ...

  6. python是一种面向过程的编程语言_python协成与面向过程编程

    import os import functools def init(func): @functools.wraps(func) #让warpper的帮助信息同eater相同 def warpper ...

  7. 深度之眼(九)——python函数--面向过程的编程

    文章目录 4.1 函数的定义及调用 4.1.1 为什么要调用函数 4.1.2 函数的的定义及调用 4.1.3 参数传递 4.1.4 函数体与变量作用域 4.1.5 返回值 4.1.6 几点建议 4.2 ...

  8. python面向什么编程_python基础-面向过程编程

    面向过程编程 面向过程编程其实是一种机械式的思维方式,其核心就是"过程". 过程指的是一种解决问题的步骤,即先干什么再干什么,最后干什么. 优点:将复杂的问题流程化,进而简单化. ...

  9. 迭代器 生成器 面向过程编程

    迭代器什么是迭代器(iterator)? 器值得某种工具 迭代,指的是更新换代的过程,例如应用程序的版本更新,从1.0编程1.1在变成1.2 迭代的目的是要根据上一个结果,产生下一个结果,这是一个重复 ...

最新文章

  1. 优秀程序员和普通程序员都是怎样过完一天的
  2. 基于MATLAB的面向对象编程(4)——类文件
  3. 异源遥感图像匹配的一种思路——智箭火眼2020科目三赛题总结
  4. 1266: [AHOI2006]上学路线route
  5. mysql dba管理_Mysql DBA 高级运维学习之路-mysql数据库常用管理应用
  6. U3D 脚本添加和获得对象
  7. spring tiles_Spring MVC 3模板和Apache Tiles
  8. 《Spring实战》第一章 — Spring之旅
  9. 新书出炉:我的视频我做主:Premiere Pro CS5实战精粹(1CD)(彩印)
  10. access订单明细表怎么做_图书销售订单明细表
  11. GGSN - SCP 业务控制点
  12. java实现mysql的导入导出_Java实现mysql导入导出Excel
  13. 万圣节html代码大全,基于Jquery实现万圣节快乐特效
  14. 外贸客户电话和邮件地址的收集
  15. 阿里云服务器绑定域名,阿里云esc绑定域名,阿里云域名备案相关完整情况
  16. CSS布局:CSS三大特性、盒子模型
  17. DDNS远程连接 群辉DS218+
  18. 全国计算机二级web考试试题,全国计算机二级Web模拟试题及答案(1)
  19. 3D打印机Marlin固件双Z轴设置
  20. 正面管教之PHP_正面管教是育儿体系?呵呵

热门文章

  1. mysql慢查询开启语句分析_mysql慢查询语句分析总结
  2. HDU 5950——Recursive sequence
  3. Redis运维和开发学习笔记(7) 内存管理和过期策略
  4. c++中的继承--2(继承中的析构函数和构造函数,继承中同名成员,继承中静态成员)
  5. 数据分割-并查集+set
  6. tiny4412初期环境搭建
  7. 146. LRU缓存机制
  8. MMKV集成与原理,吊打面试官系列!
  9. 现在做Android开发有前途吗?社招面试心得
  10. luogu P3244 [HNOI2015]落忆枫音