Python类和对象 入门级讲解

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

由于你没有编程经验,所以无法从学过的编程语言里通过类比去理解Python的‘类和对象’。咱们用生活中的例子来说说,建房子。
在这里插入图片描述
类(class): 相当于施工图纸(blueprint)

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

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

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

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

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

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

用变量赋值来说:a = 2

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

滚粗!让我们这次从另外一个角度来考虑 a = 2 这个问题,开始:
在这里插入图片描述
当你在Python中打出 a = 2, 然后回车。Python中有一个叫 ‘integer class’ 的玩意儿被‘唤醒’。
在这里插入图片描述
然后,这个integer class会跟你的要求,在执行区‘创建’一个对象,这个对象是根据integer class的施工图纸创造的。所以,这个对象(图中圆圆的东西)会有integer class的特征或者属性。(这个过程,就是你看到房子就快建好了)
还记得那个 a = 2里面的 a 吗?它要去哪里?

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

所以呢…

在这里插入图片描述
会作为一个标签,跟这个对象(圆圆的东西)挂钩。(房间建好了,可以拿钥匙住进去啦)

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

b = 3
在这里插入图片描述
老王拿着钥匙住进去了,b作为标签就绑在了新建的对象上。
在这里插入图片描述
最后再说几点:

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

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

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

当改成 b = 2, integer class不会重新创造一个对象。而是把 b(隔壁老王)作为标签,绑在之前已经创建的那个(a = 2)的对象上。(请看下图)
在这里插入图片描述
最后再说俩句:在Python中,对于 a = 2 而言,不要认为是把数值2放进a的篮子里!!!!

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

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

但是一旦你有了这个思路之后,编写面向对象程序的时候,简直是爽,例如:在这里插入图片描述
文章链接(https://zhuanlan.zhihu.com/p/26617823)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值