python基础-面向对象编程
推荐
在线提问>>
从这篇起我们开始学习一些python面向对象的编程知识,面向对象编程是一种编程方式,这种编程方式是基于类和对象的使用,当然除了面向对象这种方式还有我们知道的面向过程编程方式,在这里不多展开说了,大家只要知道现在主流的编程语言都是面向对象语言就可以了,例如java,C++等,在Python设计之出就是一门面向对象语言,但它不强制你必须写OO的程序,但在java中,万物皆类,必须用OO的方式来编程, 我理解这可能也是Python入门容易的一个方面, 在我们之前写的程序都是用函数来实现的,我们没讲太多的概念, 但要学python, 必须先过OO这关,否则根本没法继续, 在正式开始介绍面向对象编程前我们先了解下面向对象的一些术语:
类:对具有相同数据和方法的一组对象的描述或定义。
对象:对象是一个类的实例。
实例化:创建一个类的实例,类的具体对象
实例属性(instance attribute):一个对象的数据或函数元素
实例方法(instance method):所有存取或者更新对象某个实例一条或者多条属性的函数的集合。
类属性(classattribute):属于一个类中所有对象的属性,仅与其被定义的类相绑定
类方法(classmethod):那些无须特定的对性实例就能够工作的从属于类的函数。
除了基本术语,面向对象还有三大特性: 继承(Inheritance)、封装(Encapsulation)和多态(Polymorphism),概念太多就不全部展开说了,因为就单单面向对象的知识就够写本书了,有的小伙伴可能觉得面向对象的理论知识太多了,能不学吗?或者说面向对象编程重要吗? 在这我给一个肯定的答复:面向对象编程非常重要,如果你想要深入学习编程,面向对象是必须要了解的,因为现在一些开源的项目或者稍微大点的项目基本都是面向对象思路,如果你不懂,那些代码你根本没法看,就是硬着头皮看我估计也很难理清作者的编程思路,看到吐血直到自己放弃,在刚开始我们用不到,但当我们做一些项目时我们就要用到面向对象的方式去设计我们的代码实现了, 所以这也就是为什么面向对象编程在一些书里属于高级部分的原因,后续如果有时间我可以分享下我是如何阅读别人代码的。
上面讲的比较抽象,下面我通过一些大白话来理解下类和对象,那如何定义类,什么时候需要定义类呢?根据我们前面的概念,一个类就是具有相同属性和方法的对象定义或描述,例如我们人就是一个类,因为每个人都是人,但每个人又有不同,肤色,名字,性别等,这些就是人的属性,人还会走,跑,这些就是人的方法,所以如果一个事物有共性的部分,我们就可以抽象出来定义成一个类,另一个例子 比如我们现在经常看到的满大街的ofo 和摩拜自行车,从类的概念理解,每个自行车都有颜色,轮子等属性, 而自行车行走,停止就是自行车的方法,我用通过调用这些方法来控制自行车的行为,通过颜色、公司属性来定义一个具体的自行车,这就是类和对象,先定义类,然后类实例化一个对象,每个对象是具体的事物,他们有共同点又有不同点; 我们再来说一个项目中的例子,我们用到的数据库类, 里面的数据库名称,DBIP, 连接的用户名,密码都是属性, 而对数据库的查询,更新就是方法,例子就说这些, 大家应该都理解了, 这篇就写到这里吧