python面向对象编程的特征(Python基础之对象面向对象编程)
python面向对象编程的特征(Python基础之对象面向对象编程)括号表示继承自哪一类,如果没有则填object,这是所有类继承的源头搞清楚了对象是类的实例后,就明白想要创建对象先要有类,创建类的代码形式同函数一样,由class关键字打头,随后是类的名称以及继承类的名称,并以冒号(:)结尾,以下是类的一般创建形式那么对象是怎么来的首先要搞明白用于描述对象特征的数据信息称为该对象的属性,而存取属性的函数叫做方法,是该对象与外界沟通的接口,具有相同属性和方法的对象构成类,换言之类是对象抽象化而形成的概念,而对象则是类的具体实例,例如股票对象贵州茅台就是股票这个类的具体实例,面向对象编程有三大特征:封装、继承、多态1.创建对象
本系列内容所用Python版本为anaconda,直接浏览器搜索下载安装即可!
前面内容我有多次提到过对象这个概念,今天我想专门出一期内容,浅谈一下Python的对象这一基础概念,并谈谈我对面向对象编程这一编程思想的理解,希望对后续内容的学习能起到一点帮助。
一、Python对象
简单来说对象就是具体的实例。像字符串'lcm' 当他被创建的时候,他就是一个字符串对象,是实际存在的,并不是抽象的
那么对象是怎么来的
首先要搞明白用于描述对象特征的数据信息称为该对象的属性,而存取属性的函数叫做方法,是该对象与外界沟通的接口,具有相同属性和方法的对象构成类,换言之类是对象抽象化而形成的概念,而对象则是类的具体实例,例如股票对象贵州茅台就是股票这个类的具体实例,面向对象编程有三大特征:封装、继承、多态
1.创建对象
搞清楚了对象是类的实例后,就明白想要创建对象先要有类,创建类的代码形式同函数一样,由class关键字打头,随后是类的名称以及继承类的名称,并以冒号(:)结尾,以下是类的一般创建形式
括号表示继承自哪一类,如果没有则填object,这是所有类继承的源头
有了类之后就可以创建具体的实例对象了
我们创建了一个对象asset1,它来自于Asset类
Python可以动态绑定实例对象的属性
就这样我们给对象asset2、asset3分别绑定了名字和价格属性
以上案例演示了源自同一类的不同实例,藉由动态绑定的方法拥有不同属性,虽然方便,但有悖于把类视为实体的模板之惯例,若我们希望创建自同一个类的实例拥有一些共同特征,可以藉由定义一个特殊的__init__方法,来绑定一些在创建实例时必不可少的属性。
我们创建了一个Asset类,它有名字和价格两个属性,创建具体实例时必须传入这两个属性
2.封装
若要打印出具体对像的某个属性,可以创建一个打印函数
以下是示例
但是price属于asset4这个对象的内部属性,从软件设计的角度考量,有些属性可能带有重要信息,像上例轻松从外部函数直接访问内部属性,并不好,比较理想的方法是把属性和访问属性的方法放在同一个对象当中
在类中定义的方法可以用“实例.方法”的方式直接调用
把方法写在对象内部仍然无法阻止对象属性被轻易获取,因为“对象.属性名”依然可以打印出对象的属性,为了对对象的属性提供更加安全的保障,我们在创建对象实例时,在对象属性名字前面加上两个下划线,以表示这个属性为private(私有的)属性,这样通过“对象.属性名”就无法访问,只能通过内部方法访问
给Asset对象的价格属性加密
通过“对象.属性”访问对象的price属性时报错,因为这个属性加密了,而访问name属性时则不报错
相较于直接从外部访问对象的属性,这种把访问方法封装在对象的内部的好处是,它可以赋予方法一些规范,例如如果想要修改对象的属性,可以直接把修改方法写在对象内部
3.继承
继承的思想是在已有的类的基础上,尽可能的多重复去利用它。原有的类称为父类,根据父类衍生出来的类称为子类,一个父类可以衍生出无数个子类,换言之父类是由所有子类抽象而来的,子类一旦继承父类便拥有了父类的属性和方法,并可以视情况增添修改
下面我们创建新的类,他继承自上面的Asset
子类Asset1增加了修改价格方法
4.多态
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性
二、面向对象编程
面向对象编程是相对于面向过程编程而言的,我的理解是,Python面向对象编程是通过不同的方法作用于不同的对象,通过对对象的一系列操作实现目的编程思想
好了,就到这里。今天的内容简单向大家介绍了一下Python的对象概念,以及面向对象编程的编程思想,非常浅显,但我相信有个基本的了解,对以后的学习肯定是有帮助的。
END