Python基础知识之面向对象详解


本篇内容主要讲解“Python基础知识之面向对象详解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python基础知识之面向对象详解”吧!Python设计之初是一门面向对象语言,面向对象其实就是一种编程的思想,现在人们比较认可的解释就是:封装、继承、多态即为面向对象。封装、继承、多态确实是一种面向对象的体现,感觉这种解释比较牵强,面向对象的思想比较抽象,暂时没有更好的解释。面向对象编程(Object Oriented Programming)简称OOP:(解释非官方)将某一类具体的事物抽象出来其特征,行为,分析、设计和实现一个完整的程序。面向对象思想的实现流程:面向对象的分析(OOA, Object-Oriented Analysis)面向对象的设计(OOD, Object-Oriented Design)面向对象的程序设计(OOP, Object-Oriented Program) 面向对象测试(OOT,Object-Oriented Test)面向对象维护(OOSM,Object-Oriendted Soft Maintenance)程序员认为一切皆为对象,都可以代码化。了解过程序常识的人都知道,程序员总是说没有对象怎么办?没有对象new一个!!这其实是Java语言中实例化对象的一个梗,Python被人称为最优美、最简洁的语言,实例化对象以及类的定义确实比Java简单一点。今天咱要要说一说Python语言的类(Class),话不多说,举个例子:现在我要统计我认识的人都用的什么手机,什么品牌,多大内存…等等,傻傻的就有人开始了,他的代码是这样的:这统计一个都麻烦的要死,统计百八十个都累吐血了,所以咱们接下来认识一下类。类:一种复杂的自定义数据类型,参数可以是任何数据类型。类的定义格式:以上的具体内容后面会慢慢介绍,首先咱们先用面向对象的方法分析一下。目前我们的需求是统计某个人使用的手机品牌,屏幕大小,什么颜色,运行内存大小,存储大小,像素,电池大小,价格,以及这个 香港云主机人主要用来做什么。所以我们规定手机这个对象必须有这些参数,用类的方法写出来的程序就是这样的:运行结果如下:虽然现在看起来代码比之前多了,但是想想上万条数据的话哪个更方便呢?注意事项:1、类名首字母大写,为了与文件名(模块名),函数名等区分,这是个规范(非规定)2、一定要初始化函数3、初始化函数的第一个参数self可以更改,不过不推荐更改,Python语言就是用的self,谁实例化self表示谁,用于区分同名的成员变量与对象变量。程序的基本运行流程:对象的构造过程:1、为对象开辟空间,使用new构造方法2、调用初始化方法init初始化3、返回对象的引用。结果如下:phone4变量先指向Phone(‘iphone 7’)对象,后指向Phone(‘iphone 11’),因此Phone(‘iphone 7’)对象先销毁,可理解为后面的对象覆盖的前面的对象,前面的对象没用就销毁了,程序结束前销毁的所有对象。垃圾回收机制:(简单说一下)程序中的对象有垃圾回收器(garbage collector)负责释放,回收之前会自动调用对象对应类的析构方法,做释放前的准备工作(关闭占用资源等)。回收机制:1、引用计数2、标记清除3、分代回收系统为每个类自动提供一个默认的无参的初始化方法; 若自定义初始化方法,无参初始化方法不再提供。Java语言必须提供一个无参的构造方法,而Python则不需要,下面两段代码是一样的。结果如下:打印的为对象的内存地址,如果直接打印实例化对象,想按照自己的格式来打印,则需要重写str方法,如:结果如下:类和对象的关系:1.类是对象的模板2.一个类可以创建多个对象、3.对象是类一个特定的个体4.对象有独立的内存空间,不会互相影响== 与 is:== 一般用于比较值is 用于比较内存地址,查看内存地址id(x)结果如下:实例化的两个对象虽然看起来一样,但是却不是同一个对象,就像两个一样的手机,在不同人的手机中,自己的手机丢了,不能以为两个手机一样,就说别人的手机就是自己的。如果有特殊需要,如两个不同的手机对象,只要名称相同就认为相等,就需要重写eq方法。结果为:类属性:现在回到最开始的例子,统计自己的手机,它们都有一个共同的特征,就是这些手机的拥有者是我们自己。假如我们给每个实例化的手机加一个同样的参数,就有些麻烦,因此介绍以下类属性:所有实例化对象都拥有的属性。类属性,类可以直接调用,生成的所有的对象也能调用。面向对象与面向过程:两种不同的编程思想,面向过程就是按部就班的一步步,有顺序、有步骤的执行。而面向对象是先弄明白需求,设计模板,大批量生产。就像有两个人去收割麦子,面向过程是这样的:面向过程的思想就是:需求是收割麦子,造一辆收割机,然后可以一直收割麦子。两种思想有不同的使用场景,就像需要收割的麦子只有巴掌大小,和上千亩良田。到此,相信大家对“Python基础知识之面向对象详解”有了更深的了解,不妨来实际操作一番吧!这里是开发云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: 电脑没有磁盘清理功能如何解决

这篇“电脑没有磁盘清理功能如何解决”文章的知识点大部分人都不太理解 香港云主机,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“电脑没有磁盘清理功能如何解决”文章吧。原因:可能回收…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/08 22:33
下一篇 08/08 22:33

相关推荐