面向过程的程序设计
Posted samyoung
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向过程的程序设计相关的知识,希望对你有一定的参考价值。
定义:
面向过程编程思想:流水线式的编程思想,在设计程序时,需要把整个流程设计出来
优点:
1.体系结构更加清晰 (耦合度强)
2.简化程序编程的复杂度
缺点:
1.可扩展性极其差,所以说面向过程的应用场景是:不需要经常变化的软件
实例:
1.
import os,time
def init(func):
def wrapper(*args,**kwargs):
res = func(*args,**kwargs)
next(res)
return res
return wrapper
\'\'\'
@init
def eater(name):
print(\'%s start to eat\'%name)
food_list = []
while True:
food = yield food_list
print(\'%s eat %s\'%(name, food))
food_list.append(food)
\'\'\'
#过程式编程
#找到一个绝对路径,往下一个阶段发一个
@init
def search(target): ##search的参数是opener的运行结果
\'找到文件的绝对路径\'
while True:
dir_name = yield
print(\'车间search开始生产产品:文件的绝对路径\')
time.sleep(0.2)
g = os.walk(dir_name)
for i in g:
for k in i[-1]:
file_path = \'%s/%s\'%(i[0], k)
target.send(file_path)
@init
def opener(target):
\'打开文件获取文件句炳\'
while True:
file_path = yield
print(\'车间opener开始生产产品:文件句柄\')
time.sleep(0.2)
with open(file_path) as f: #opener的参数是cat的运行结果
target.send((file_path, f)) #下一个阶段的生成器.send 传送
@init
def cat(target):
\'读取文件内容\'
while True:
file_path,f = yield
print(\'车间cat开始生产产品:文件的一行内容\')
time.sleep(0.2)
for line in f:
target.send((file_path,line)) #send可以传送多个值,但必须元组类型
@init
def grep(pattern, target): #patten传的参数
\'过滤一行内容有无关键需要的关键字\'
while True:
file_path,line = yield
print(\'车间grep开始生产产品:包含python这一行文件的绝对路径\')
time.sleep(0.2)
if pattern in line:
target.send(file_path)
@init
def printer():
\'打印文件路径\'
while True:
file_path = yield
print(\'车间printer开始生产产品:得到最终的产品\')
time.sleep(0.2)
print(file_path)
g = search(opener(cat(grep(\'python\',printer()))))
g.send(\'C:\\\\egon\')
车间search开始生产产品:文件的绝对路径
车间opener开始生产产品:文件句柄
车间cat开始生产产品:文件的一行内容
车间grep开始生产产品:包含python这一行文件的绝对路径
车间printer开始生产产品:得到最终的产品
C:\\egon/egon.txt
车间grep开始生产产品:包含python这一行文件的绝对路径
车间grep开始生产产品:包含python这一行文件的绝对路径
车间opener开始生产产品:文件句柄
车间cat开始生产产品:文件的一行内容
车间grep开始生产产品:包含python这一行文件的绝对路径
车间printer开始生产产品:得到最终的产品
C:\\egon/egon1.txt
车间grep开始生产产品:包含python这一行文件的绝对路径
车间grep开始生产产品:包含python这一行文件的绝对路径
车间opener开始生产产品:文件句柄
车间cat开始生产产品:文件的一行内容
车间grep开始生产产品:包含python这一行文件的绝对路径
车间grep开始生产产品:包含python这一行文件的绝对路径
车间grep开始生产产品:包含python这一行文件的绝对路径
车间printer开始生产产品:得到最终的产品
C:\\egon\\a/a.txt
车间opener开始生产产品:文件句柄
函数就是定义阶段+调用阶段
以上是关于面向过程的程序设计的主要内容,如果未能解决你的问题,请参考以下文章