首页 > 代码库 > python 3 面向过程编程

python 3 面向过程编程

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 g

    return wrapper

 

#第一阶段:找到所有文件的绝对路径

import os

@init

def search(target):

    while True:

        filepath=yield

        g=os.walk(filepath)

        for pardir,_,files in g:

            for file in files:

                abspath=r%s\%s %(dirpath,file)

                target.send(abspath)

 

#第二阶段:打开文件

@init

def opener(target):

    while True:

        abspath=yield

        with open(abspath,rb) as f:

            target.send((abspath,f))

 

#第三阶段:循环读出每一行内容

@init

def cat(target):

    while True:

        abspath,f=yield #(abspath,f)

        for line in f:

            res=target.send((abspath,line))

            if res:break

 

#第四阶段:过滤

@init

def grep(pattern,target):

    tag=False

    while True:

        abspath,line=yield tag

        tag=False

        if pattern in line:

            target.send(abspath)

            tag=True

 

#第五阶段:打印该行属于的文件名

@init

def printer():

    while True:

        abspath=yield

        print(abspath)

 

g = search(opener(cat(grep(error.encode(utf-8), printer()))))

g.send(rE:\project\PY18\lianxi\111222)
View Code

 

python 3 面向过程编程