从脚本编写到面向对象的 Python 编程
2008-09-23 12:46:56 来源:WEB开发网当您运行此脚本时,将会获得同样的输出,因此可以跳过输出的显示。您能够从该脚本的 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
过程式编程通常是初学的开发人员的最自然编程风格,并且对于许多问题来说也是高度有效的。另一方面,对于创建抽象从而创建可重用的代码来说,面向对象的编程可能是非常有用的方法。然而,当项目达到某种程度的复杂性之后,过程代码通常会暴露出其根本缺陷。下面让我们直接进入上一个示例的面向对象版本,并看看这样有何变化。
- ››编写Linux定时处理程序
- ››面向对象的JS-私有成员变量实现方式
- ››编写Linux系统下Daemon程序的方法步骤
- ››编写组件,使用JavaScript更新UpdatePanel
- ››面向对象的JavaScript (一、对象基础,使用函数来...
- ››编写多文档应用程序
- ››面向对象数据库 db4o 之旅,第 4 部分: 使用 dRS
- ››编写自定义的 Android Preference 组件
- ››编写高效的Android代码
- ››编写 Android第一个程序 Hello, Android!
- ››编写使用root权限的android应用程序
- ››面向 Java Web 应用程序的 OpenID,第 2 部分: 为...
更多精彩
赞助商链接