搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 达内Python人工智能 > Python类和对象的入门级讲解(以现实生活类比)

Python类和对象的入门级讲解(以现实生活类比)

达内Python人工智能 2017-10-30

 Tips:

Python免费课程报名中,点击文末“阅读原文”快速抢!

该文章转自知乎作者吉他手的一篇文章。关于类和对象的理解,相信很多初学python的同学会遇到很多烦恼,对这些抽象的感念理解不够透彻。小编在偶然间看到这篇文章后对这种简单粗暴的风格实在没有抵抗力,今天就分享给大家~ 一起来感受下这种风格带来的“视觉”冲击感。


Python类和对象的入门级讲解(以现实生活类比)


首先,我已经假定你已经看了无数遍的垃圾文章,然后依然搞不懂类和对象,但是呢起码知道有类和对象这么两个玩意儿。

由于你没有编程经验,所以无法从学过的编程语言里通过类比去理解Python的‘类和对象’。咱们用生活中的例子来说说,建房子。


Python类和对象的入门级讲解(以现实生活类比)


类(class): 相当于施工图纸(blueprint)

对象(object):房子(已经建造好的)

假设你手上有施工图纸(Blueprint),里面有房子的所有信息(盖几层,厨房在哪,卧室在哪,怎么建)。

你已经在憧憬你以后在这个新家的生活了,买贵的家具,在厨房做好吃哒........但是呢,这些都是你的YY,你要做这些事情必须要等房子真正建好了以后才行。如果房子中途烂尾,你就啥也做不了,梦想无处安放。用

所以说,‘一个建好的房子’很重要。在Python中,‘一切皆为对象’,这也是大家称之为 object oriented的意思。有了对象,咱们才能搞事情!!!


接着来:

Python类和对象的入门级讲解(以现实生活类比)


对于建好的房子也许会稍稍不一样,每个人都有各自的喜好,就像图中看到的,可能是房子的户型一样,但是呢,颜色不一样。重点:它们都是根据‘施工图纸’造出来的。


例子结束,带着例子中想表达的‘精神’,咱进入Python来看看‘类和对象’:


用变量赋值来说:a = 2

据说按照咱一般的理解,创建一个变量命名为a,然后赋值2。相当于把2放进名叫a的篮子里,blablablabla.....

滚粗!让我们这次从另外一个角度来考虑 a = 2 这个问题,开始:


Python类和对象的入门级讲解(以现实生活类比)


当你在Python中打出 a = 2, 然后回车。Python中有一个叫 ‘integer class’ 的玩意儿被‘唤醒’。


Python类和对象的入门级讲解(以现实生活类比)


然后,这个integer class会跟你的要求,在执行区‘创建’一个对象,这个对象是根据integer class的施工图纸创造的。所以,这个对象(图中圆圆的东西)会有integer class的特征或者属性。(这个过程,就是你看到房子就快建好了)

还记得那个 a = 2里面的 a 吗?它要去哪里?

因为语句,a 是要等于(=)2的,因为你按了回车,哈哈

所以呢...........

Python类和对象的入门级讲解(以现实生活类比)


a会作为一个标签,跟这个对象(圆圆的东西)挂钩。(房间建好了,可以拿钥匙住进去啦)


卧槽,老王在隔壁也买了房子!?!?  这时,又创建了一个对象(圆圆的东西)

b = 3



Python类和对象的入门级讲解(以现实生活类比)


老王拿着钥匙住进去了,b作为标签就绑在了新建的对象上。


Python类和对象的入门级讲解(以现实生活类比)


最后再说几点:

可以看到每次创建对象(圆圆的东西),它们的ID都是不同的。

然鹅..........如果我们把 b = 3 改成 b =2, 咦?我们不是已经有了a = 2了吗?说好的自扫门前雪呢??

这就意味着隔壁老王的魔爪要伸过来了.....

当改成 b = 2, integer class不会重新创造一个对象。而是把 b(隔壁老王)作为标签,绑在之前已经创建的那个(a = 2)的对象上。(请看下图)


Python类和对象的入门级讲解(以现实生活类比)


最后再说俩句:在Python中,对于 a = 2 而言,不要认为是把数值2放进a的篮子里!!!!

应该是a作为标签,挂在对象(数值为2)上!!!!对象很重要!!!!就是图中那个圆圆的东西!!!!!!对象很重要!!!!

到此为止,仅仅是开了头。后面还涉及到很多关于类和对象的操作,并且每个对象里面的那个ID也很重要(涉及到method的引用,还有self的问题)

但是一旦你有了这个思路之后,编写面向对象程序的时候,简直是爽,例如:


Python类和对象的入门级讲解(以现实生活类比)


总结

相信这篇总结能够帮助到好多初学python的同学,关于对象和类的理解能有一个深刻的认识。一句话概括python:一切皆为对象。



相关推荐

- 福利 -

现在人工智能爆发,Python是一门脚本语言,它更适合去做人工智能这个领域,在人工智能上使用Python比其他编程语言有更大的优势。

学习一门python语言的前景越来越好,如果想在IT领域发展的话,可以报名达内Python+人工智能课程,点击页面底部“阅读原文”预约免费课程。

回复「课程」查看Python课程详情

回复「教程」下载《Python从入门到精通》60集视频

回复「干货」下载《Python编程入门》电子书

回复「入门」下载《简明Python教程》电子书

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《Python类和对象的入门级讲解(以现实生活类比)》的版权归原作者「Python人工智能」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注Python人工智能微信公众号

Python人工智能微信公众号:python009

Python人工智能

手机扫描上方二维码即可关注Python人工智能微信公众号

Python人工智能最新文章

精品公众号随机推荐