面向对象的Python: OOP基础

健谈始于戊戌年
2022-05-15

从本文开始,我将向大家介绍面向对象(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也不是那么难。

天下无难事,只要肯攀登!

免责声明:上述内容仅代表发帖人个人观点,不构成本平台的任何投资建议。

精彩评论

发表看法
5
1