zoukankan      html  css  js  c++  java
  • 面向过程的程序设计


    定义:

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

      

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

      

  • 相关阅读:
    小程序学习过程中遇到的问题
    小程序云函数调用webservice接口
    小程序云函数调用http或https请求外部数据
    MQTT Web Toolkit
    mqtt.mini.js 使用
    MQTT 浏览器 mqttws31.min.js
    MQTT.js browser node 均支持
    mqtt开源服务器 EMQX ,客户端MQTTX5.0,使用指南
    vue调试工具vue-devtools安装及使用方法
    Js 类继承 extends
  • 原文地址:https://www.cnblogs.com/jiangshitong/p/6700241.html
Copyright © 2011-2022 走看看