WEB开发网
开发学院软件开发Python 从脚本编写到面向对象的 Python 编程 阅读

从脚本编写到面向对象的 Python 编程

 2008-09-23 12:46:56 来源:WEB开发网   
核心提示: 当您运行此脚本时,将会获得同样的输出,从脚本编写到面向对象的 Python 编程(3),因此可以跳过输出的显示,您能够从该脚本的 PHP 版本和 Bash 版本中找到的相关性在于,过程代码通常会暴露出其根本缺陷,下面让我们直接进入上一个示例的面向对象版本,此过程式代码事实上像一组指令一样运

当您运行此脚本时,将会获得同样的输出,因此可以跳过输出的显示。您能够从该脚本的 PHP 版本和 Bash 版本中找到的相关性在于,此过程式代码事实上像一组指令一样运行。似乎计算机就像是一个小孩,而您告诉该小孩如何做某件事情,例如第一次系鞋带。在您开始在 Python 中考虑“面向对象范式”之前,让我们首先看一下如何采用 Python 来创建这同一个脚本的过程式版本。

Python 磁盘监视示例

from subprocess import Popen, PIPE
import re
def disk_space(pattern="2[0-9]%", message="CAPACITY WARNING:"):
    #takes shell command output
    ps = Popen("df -h", shell=True,stdout=PIPE, stderr=PIPE)
    output_lines = ps.stdout.readlines()
    for line in output_lines():
      line = line.strip()
      if re.search(pattern,line):
        print "%s %s" % (message,line)
disk_space()

浏览一下我们的代码的过程式 Python 版本,发现它与 Bash 和 PHP 版本非常相似。对于 Python,子过程模块处理对 Shell 命令的系统调用,并将输出发在一个列表(在 Bash 和 PHP 中称为数组)中。与 PHP 版本非常相似,然后我对命令的标准输出行列表中的项进行了迭代遍历。我寻找构成所寻找模式的正则表达式,然后使用注入的特殊消息来打印该磁盘报告行。这是如何解决自顶向下的脚本问题的经典示例,但是在下一个部分中,您将完全改变这种方法,并从对象的角度考虑问题。

从过程到面向对象的 Python

过程式编程通常是初学的开发人员的最自然编程风格,并且对于许多问题来说也是高度有效的。另一方面,对于创建抽象从而创建可重用的代码来说,面向对象的编程可能是非常有用的方法。然而,当项目达到某种程度的复杂性之后,过程代码通常会暴露出其根本缺陷。下面让我们直接进入上一个示例的面向对象版本,并看看这样有何变化。

上一页  1 2 3 4 5 6 7  下一页

Tags:脚本 编写 面向

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接