计算机编程中最常被提到的就是类和对象,掌握类和对象,有助于使用Python 编程与语言快速实现复杂的项目。
早期计算机编程语言都是面向过程的,长须即由数据和算法构成,数据可以构成复杂的数据结构,算法也是由上到下 的复杂逻辑控制,这是一种将数据和操作算法分离开的编程思想,这种程序涉及思想的重点都是在代码中各个方法的执行上,C语言中提供了结构体来解决数据复杂度问题,可将一部分数据或属性包装起来,定义出一个复杂的数据结构,如Person 结构体(包括姓名,年龄,身高,体重等一系列数据)。
#include <stdio.h> int main () { //定义结构体,Person\ struct Person{ char *name; int age; float height; float weight; }; //通过结构体来定义变量 struct Person person; //操作结构体的成员 person.name = "小王"; person.age = 24; person.height = 171.2; person.weight = 75.0; return 0; };
上面的代码是C语言设计中的结构体,但是这种结构体只能支持复杂的数据结构,对于每个数据的处理都要单独提供方法,而且这些方法与整体的结构体并没有关系,后来在PHP,C++,Java,Python等语言中,人们对C语言中的结构体进行了升级,引入了一种新的编程思想--面向对象编程,即程序操作都是在操作对象,对象不仅可以定义复杂的数据结构,也可以定义复杂的算法方法,对象将数据和方法封装起来,开发者只需要负责对象内部的数据和算法,同时对外暴漏接口和供调用方使用,而调用方也不需要关心实际对象内部的复杂逻辑,只需要调用接口,下面给出了和PHP 相同的Person 结构的示例,与C语言结构体不同的是加入了算法方法。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- class hankai: def __init__(self, name, age, height, weight) : self.name = name self.age = age self.height = height self.weight = weight def print_person(self): print ("name", self) print ("age", self.age) print ("height", self.height) print ("weight", self.weight) person = hankai('韩锴', 32, 160, 60) person.print_person()
执行结果:
name <__main__.hankai object at 0x00000270D0FC8400>
age 32
height 160
weight 60
开发人员发现,这种编程思想更能解决实际问题,程序是对象的集合,并且能够描述具有高度复杂性的各类模型和算法,在现实生活中,人的思考是抽象的,我们会将遇到的事务抽象化,相同或类似的对象可以进行抽象,这时就出现了对象的类型--类,先定义类,然后由类去创建对象,最后由对象去管理整个程序,就像人类思考一样,先抽象,后实例化,最后去执行,面向对象编程的应用逐渐变得广泛起来。
值得注意的是,类的产生是抽象的结果,人们在认识复杂世界时,会将实物或者可以说是对象的一些近似特征抽出来,并且不考虑其中每个个体的细节,面向对象编程就是一种不断抽象数据和不断抽象方法的过程。
提示:
面向对象编程在软件执行效率上并没有绝对的优势,主要时一种方便开发者组织管理代码,快速树立了熟悉各个行业领域逻辑的思想方法,它是一种更贴近现实生活的编程设计方法。