从本文开始,我将向大家介绍面向对象(Object-Oriented)的Python程序设计。我会首先介绍面向对象的程序设计(Object-Oriented Programming,即OOP),及其和过程化程序(Procedural Style Programming)的区别,然后还会介绍类(Class),对象(Object),属性(Property)和方法(Method),以及继承(Inheritance)和多态性(Polymorphism)等OOP中的概念。
好了,下面就让我们从OOP的基础开始讲起吧。
1. OOP基础
我们先来介绍一些OOP的基础知识。需要说明,这些OOP的基础知识不仅在Python语言中使用,而且在其他的语言如JAVA, C#中也都类似。我们这里将会以Python语言为案例进行说明。
通常,当我们开始学习编程的时候,首先接触到的都是过程化程序。古老而经典的程序设计语言如C, FORTRAN都是过程化程序。在过去的几十年里,过程化程序曾经是软件开发的主流。即使在现在,它也依旧被广泛应用,而且将来也不会消失。过程化程序适用于某些不是特别大,不是特别复杂,但却有很多特例的项目。
OOP就相对年轻了。它主要适用于特别大,特别复杂,需要很多程序员共同开发的项目。当我们把一个大型开发项目,分成小且独立的组成部分,就可以使得项目容易实现。
过程化程序设计就好像自己在家做饭,需要一个菜一个菜的准备,甚至吃完了以后收拾餐桌和洗碗都要一个人完成。这样的方法对于一个人,或者一个三口之家是完全可行的。而OOP类似于食堂或者大餐厅的方法,有人负责洗菜,有人负责切菜,有人负责凉菜,有人负责炒菜,还有人负责做汤和主食(这些都是对象)。当客人来的时候,可以同时做几十桌的饭菜。
具体到Python而言,它既是过程化程序,也可以作为OOP。而且Python在这两个方面都有不多的表现。如果自己编一个Python选股的程序,完全可以通过过程化程序实现。而如果需要做一个有界面的选股系统,那就要用OOP了。
可见,即使你目前并不了解OOP里面的类和对象,你依旧可以写出Python程序。只是对于有一部分问题,例如图形用户界面(Graphical User Interface,简称 GUI),这里面就会对OOP的方法有特殊要求。不过大家也不必担心,OOP也不是那么难。
天下无难事,只要肯攀登!
精彩评论