• 面向过程的程序设计



    定义:

    面向过程编程思想:流水线式的编程思想,在设计程序时,需要把整个流程设计出来
    优点:
    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:egona/a.txt
    车间opener开始生产产品:文件句柄

      

    函数就是定义阶段+调用阶段

      

  • 相关阅读:
    【convertio.co】免费在线文档转化神器
    成长需熬过“四苦”
    岁月饶过谁
    致我的未来
    一定要相信自己
    奋斗的意义是什么?
    一生一世一双人,半醉半醒半浮生
    逆境中的自己
    怎样才能让人看到你呢
    2020 遇见更好的自己
  • 原文地址:https://www.cnblogs.com/jiangshitong/p/6700241.html
Copyright © 2020-2023  润新知