Python|类与对象
Author:AXYZdong
自动化专业 工科男
有一点思考,有一点想法,有一点理性!
定个小小目标,努力成为习惯!在最美的年华遇见更好的自己!
更多精彩文章前往:👉 个人主页
前言
本文为面向对象在 Python 中的实践,所使用的 环境为 Python3.7。
参考视频:https://www.bilibili.com/video/BV1A4411v7b2
本文主要是对视频内容的整理与自我总结和体会。
什么是对象(object)?
"把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。"
——比较正式的说法
更通俗易懂的说法,下面这段内容来自于知乎。
一句话说明什么是面向对象?你个土鳖,你们全家都是土鳖!
好像有人说过这样的话,当头棒喝的方式虽然情感上不易接受,但记忆效果十分显著。
好吧,如果你觉得“土鳖”实在难听也不能准确定位你的档次,你可以自行将其替换为“土豪”,whatever。
面向对象思想有三大要素:封装、继承和多态。
封装:不管你是土鳖还是土豪,不管你中午吃的是窝头还是鲍鱼,你的下水都在你肚皮里,别人看不到你中午吃了啥,除非你自己说给他们听(或者画给他们看,whatever);
继承:刚说了,你个土鳖/豪,你们全家都是土鳖/豪。冰冻三尺非一日之寒,你有今天,必定可以从你爸爸爷爷那里追根溯源。正所谓虎父无犬子,正恩同学那么狠,他爹正日就不是什么善茬,更甭说他爷爷日成,明白了吗?
多态:哲学家说过,世上不会有两个一模一样的双胞胎。即使你从你父亲那里继承来的土鳖/豪气质,也不可能完全是从一个模子里刻出来的,总会有些差别。比如你爸喜欢蹲在门前吃面,你喜欢骑在村口的歪脖子树上吃,或者反过来。当然,也可能令尊爱吃龙虾鲍鱼时旁边有几个艺校小女生喝酒唱歌助兴,你可能更喜欢弄个街舞乐队来吹拉弹唱。
作者:成心文链接:https://www.zhihu.com/question/19854505/answer/21143952 来源:知乎
万物皆对象,对象是具体的事物。
具有属性
具有行为(方法)
把很多零散的东西,封装成一个整体
也就是说一个对象具有静态特征(属性)和动态特征(行为)。
举例:
比如有个叫王二小的人,他有属性和行为。
他的属性有
姓名
年龄
身高
体重
...
他的行为有
走路
吃饭
放羊
...
Python 中的体现
Python 是一门彻底的面向对象编程的语言(OOP:Object Oriented Programming)
在其他的语言中一般都包括基本数据类型和对象类型,而在 Python 中将它们统称为对象类型,包括 int、float、bool、list、dictionary...
面向过程和面向对象
总的来说都是一种解决问题的思路,面向对象本身则是对面向过程的封装。
面向过程:在解决问题的时候,关注的是解决问题的每一个的过程(步骤)。
面向对象:在解决问题的时候,关注的是解决问题所需要的对象。
面向过程编程关键在于按照步骤划分,把一个任务分解成具体的每一个步骤。而面向对象编程的关键是按照功能将对象进行划分,找到对象,确定对象属性和行为。
从面向过程过度到面向对象
列举出一个任务的具体实现步骤
试图分离这些实现步骤中的功能代码块
将这些功能代码块,划分到某一个对象中
根据这个对象以及对应的行为,抽象出对应的类
类(class)
简单的说,类是对象的蓝图和模板,而对象是类的实例。
这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类(型)。
当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定义出一个叫做“类”的东西。也就是某个具体对象特征的抽象。
类由名称、属性和方法组成,属性和方法是抽象的概念,而根据抽象的类可以产生具体的对象。这些对象才拥有具体的属性和方法。
生活中的类:
类:汽车。对象:大众、奥迪、马自达...
类:手机。对象:华为手机、小米手机...
类:熊类。对象:熊大、熊二...
...
类和对象的关系
对象的 抽象化 形成类
类的 实例化 形成对象
类的定义
类名的首字母需要大写
根据类创建(实例化)对象
从打印出来的结果可以看到 Name
是一个类,而 one
是一个对象。
本次的分享就到这里
如果我的文章对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦!
听说 👉 点赞 👈 的人运气不会太差,每一天都会元气满满呦!^ _ ^
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了👉 关注 👈我哦!
如果以上内容有任何错误或者不准确的地方,欢迎在下面👇留个言。或者你有更好的想法,欢迎一起交流学习~~~
版权声明: 本文为 InfoQ 作者【AXYZdong】的原创文章。
原文链接:【http://xie.infoq.cn/article/e26a724e5f260f83cf255369d】。文章转载请联系作者。
评论