面向对象的Python
Python是一种面向对象的编程语言,但是Python和C++一样,还支持面向过程的程序设计。在Python中完全可以使用函数、模块等方式来完成工作。
但是在使用Python完成一个很庞大的项目时,则应该考虑使用面向对象的方法,以便更好的对项目进行管理。
概述
面向对象程序设计简称为OOP,是与面向过程的程序设计不同的另一类变成架构。之前的文章大都是面向过程的,而非面向对象的。
Python中的面向对象的思想
面向对象程序设计是从20世纪90年代开始流行起来的一种变成方法,强调对象的"抽象"、"封装"、"继承"、"多态"。面向对象程序设计方法的基本思想是将
任何事物当做对象,是其所属对象类的一个实例。对于复杂的对象则将其划分成简单对象,由这些简单的对象以某种方式组合而形成复杂的对象。每一个对象都有
其相对应的对象类。属于同一个对象类的对象具有相同的属性以及操作方法等。
对象以对象类的形式将其内部的数据或者方法封装。对象与对象之间只有相互传递数据,而不能访问其他对象的内部。对象的内部相对于其他对象来说是不可见的。
不同的对象类之间可以通过继承的形式来拥有其他对象的属性和方式等,而形成父子关系。面向对象程序设计方法的基本过程如下。
(1)确定对象及其属性和方法等。
(2)分析对象之间的联系确定其通信机制。
(3)将具有共同特征的对象抽象为对象类。
(4)设计、实现类,并确定类相互间的继承关系。
(5)创建对象实例,实现对象间的相互关系。
例如,可以将人作为一个对象类。每一个具体的人,如张三,则是一个对象实例。每个人都具有名字、性别、年龄、身高等,则可以将这些抽象为对象类的属性。
Python完全采用了面向对象程序设计的思想。在Python中可以使用类建立一个对象模型,以及对象所拥有的属性和方法等。该模型能够较好的反应事物的本质,
以及其相互之间的关系,其本质是更接近于人类认知事物所采用的计算模型。
Python脚本是真正面向对象的脚本语言,虽然其与C++的类机制有所区别,但Python保证对类的最重要功能的支持,例如类的继承、基类的重载等。
在Python中,对象概念比较广泛,对象不一定非得是类的实例。Python的内置数据类型如字符串、列表、字典等,他们都不是类,但却多少具有类相似的语法。
例如,使用"."操作符来使用内置类型的某些方法。
类和对象
类是面向对象程序设计的基础。类具有抽象性、封装性、继承性和多态性。
类的抽象性是指类是对具有共同方法和属性的一类对象的描述。
类的封装性是指类将属性和方法封装,对于外部其实不可见的,只有通过类提供的接口才能与属于类的实例对象进行信息交换。
类的继承性是指类可以由已有的类派生。派生出来的类拥有父类的方法和属性等。
类的多态性是指类可以根据不同的参数类型调用不同的方法。同一个方法可以处理不同类型的参数。实际上Python的内部已经很好的实现了多态。在Python中
使用类不需要考虑太多不同类型数据之间的处理。
每个类都具有自己的属性和方法。类的属性实际上就是类内部的变量。而类的方法,则是在类内部定义的函数。
对象是具体的函数,是实例化的类。每个对象的属性值可能不一样,但所有由同一类实例化得来的对象都拥有共同的属性和方法。在程序中由类实例化生成对象,
然后使用对象的方法进行操作,完成任务。一个类可以实例化成多个对象。类与对象的关系如下
对象1<----|
对象2<----| 实例化
|<=========类
对象3<----|
对象4<----|