Py学习  »  Python

面向对象的Python:过程化 vs 面向对象的程序设计

健谈始于戊戌年 • 1 年前 • 113 次点击  


在过程化程序设计中,我们可以把程序分为两个部分:数据部分和代码部分。其中,数据部分包括各种各样的变量。而代码部分则包括各种函数和模块。


 

我们知道,函数可以使用数据。比方说对数据取对数,或开平方。但是反过来,数据却不一定能使用函数。而且,函数甚至可以滥用数据。例如,我们可以求身份证号码的平方。虽然这么做本身没有意义,但是合法。

 

我们再来说数据使用函数的情况。数据是否永远不能使用函数呢?有没有什么特殊情况,能够让数据使用函数呢?答案是肯定的。这就是我们要介绍的方法(Method)。数据可以通过方法调用函数。如果你了解到这一点,那就朝面向对象的程序设计走出了第一步!

 

注意:面向对象的程序设计和过程化程序设计的思路完全不同。在面向对象的程序设计中,数据和代码并不是分成两个部分,而是被合并成了一个整体,成为各种类(Classes)。每一种类可以根据需要,生成各种对象。这就是面向对象的含义。然后,我们会利用对象解决各种问题。

 

每个对象有一系列特征。这就是属性(Properties 或者 Attributes)。各种对象还可以进行一系列活动。这就是前文讲到的方法。

 

如果现有的类不能满足需求,我们可以根据需要在旧的类基础上产生新的类。而新的类会继承旧的类之中的属性和方法。当然,新的类中通常还会增加一些功能。

 

对象是类表达含义的化身!这就好比大楼是图纸的化身。图纸上的各种想法,都会在大楼中体现出来。对象之间互相作用,交换数据或者使用方法。一个科学设计的类(或者说对象)能够保护敏感数据,防止非法访问。

 

在面向对象的程序设计中,数据和代码没有明显的区别:它们都是对象。这些概念其实并不抽象,而是源于实际工作。因此,它们在程序设计中十分重要。牢记,并非我们创造了这些虚拟的概念,而是这些概念反应了事实,关系以及各种情景。

 

不仅艺术源于生活,而高于生活。程序设计也是源于生活,而高于生活。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/134428
 
113 次点击