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开始生产产品:文件句柄

      

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

      

  • 相关阅读:
    1026 Table Tennis (30)
    1029 Median
    1025 PAT Ranking (25)
    1017 Queueing at Bank (25)
    1014 Waiting in Line (30)
    1057 Stack (30)
    1010 Radix (25)
    1008 Elevator (20)
    字母大小写转换
    Nmap的基础知识
  • 原文地址:https://www.cnblogs.com/jiangshitong/p/6700241.html
Copyright © 2011-2022 走看看