类与对象

首先,恭喜你,跟着小K,一路过五关斩六将,来到今天的课堂。

回首以往,我们在Python江湖中,已经走了很远很远,脑海中的代码越来越多,解决问题的能力越来越强,并且,到现在我们通过上节课与雍正爷一起整治bug后,我们的能力越来越强,看到代码错误时,能够脸不红心不跳,慢慢解决。

山登绝顶我为峰,这节课,我们要向着音乐与远方奋进。

在这节课,我们会接受一种全新的编程思维:面向对象编程,为你开启一个新的大门。

面向对象编程,我会呀,就是对着男朋友/女朋友编程啊。

NO,NO,NO,面向对象编程可不是对着男女朋友编程,而是一种思维模式。

举个例子,还是洗衣服:要想洗衣服,用之前编程思维来想,那就是把衣服放入洗衣机,倒入洗衣液,然后点击洗衣机的开始按钮,最后洗完把衣服晾干。这种通过洗衣服的过程来进行思考问题的方式,叫做面向过程编程。

而面向对象编程,是一种以对象为中心的编程思想。它不需要去考虑过程,而是考虑过程中能够所需要的对象,比如在这里,衣服\洗衣机\洗衣液都是对象。

江湖秘籍:万物皆对象,面向对象编程中,将现实中所有的事物都看做对象…

也许你现在还不能完全体会面向对象编程,那你就先记住,万物皆对象,所有的现实事物都是对象…

来,看个小游戏。
在这里插入图片描述
比如上面这个消消乐小游戏,玩家通过移动鼠标来控制方块的移动进行消除。这就是通过Python编程完成的游戏。而完成这个游戏,就需要我们使用面向对象思维方式来考虑问题。我想,你也可以在学习Python结束后,尝试完成一些小游戏。

下面就开始我们这次征程旅途。在这里插入图片描述
快上车,下面我们就要向面向对象的山峰进军了。
征途第一站:“类”

当你看到“类”这个字,第一想法是啥?想到了什么?

分类?归类?人类?鱼类?动物类?植物类? OK,没问题。我们经常会用”类”这个字来划分一个一个群体。

现在,请你想想,能否把身边的物品划分到一类中?

有家电类,家具类,床上用品类,陶瓷类,金属类,视频类 ……生活中的物品可以划分到不同的类中。

在点开购物网站,每次去网购的时候,是不是也被各种种类的物品所包围?在这里插入图片描述
这就是物以类聚,类:就是多个类似事物组成的群体的统称。类能够帮助我们快速理解和判断事物的归属。

在Python江湖中,我们从一开始,就接触了类,不信,运行一下下面代码:

#直接运行代码
print(type('666'))  # <class'str'>
print(type(6666))  # <class'int'>
print(type([6666])) #<class'list'>

运行上面代码后,我们发现,'666’属于’str’字符串类;6666属于’int’整数类;[6666]属于’list’类。

类之所以称为类,就是因为类下面有无数个相似却不同的个例。比如说,你的iphone手机与我的android手机,都属于手机类;岳云鹏与郭麒麟,都属于明星类;隔壁老樊与张碧晨,都属于歌手类。

在Python的编程江湖中,每个类都有很多实例。比如520、1314都是整数类;3.1415926、9.85都属于浮点数类;‘hi’、'hello’都属于字符串类。

在Python的江湖中,我们把类的个例叫做“实际的例子” 简称“实例”。在这里插入图片描述
到此为止,我们已经接触了两个概念,类与实例。

江湖秘籍:类就是统称,一类物品的统称。实例就是一个具体存在特指的一个事物。相似的实例就可以归到同一类中。

有了这个基础,我们就可以到下一站:“对象”。
一切皆“对象”

再说一遍,这里的对象可不是男女朋友,而是面向对象编程中的对象。

在Python江湖中,它把所有的事物都称为对象, 对象包含类与实例;也就是说,类叫做对象,实例也叫做对象。比如str是类对象,'hello’就是实例对象。 一切皆对象。生活中,无论是类还是实例,都可以当成沟通的对象。

例如:我们去KTV唱歌的时候会说“音乐歌曲很丰富”;还会说,“我唱一首歌曲《情深深雨蒙蒙》”;前者说的歌曲就是类对象,后面说的歌曲《情深深雨蒙蒙》就是实例对象。

在Python江湖中:

在这里插入图片描述
现在相信大家能够区分类\实例\对象三者了。
创建类与调用类

为了大家加深对类\实例\对象的理解,我们开启面向对象编程。
我们都是音乐人

羽泉、你、我都是音乐人------这句话,在Python江湖中翻译过来就是: 羽泉、你、我都属于“音乐人”这个类,羽泉、你、我都是“音乐人”这个类中的实例;我们都存在一些相同点:喜欢音乐、艺名、会唱歌、能跳舞。

这些共同点,就是我们区别于其他类的依据。其实,我们还可以对这些相同点进行细分:

第一种,用来描述事物性质的,比如:喜欢音乐、艺名;

第二种,用来描述事物能做什么,比如:会唱歌、能跳舞。

在Python江湖中,我们把第一种共同点称为属性(what),第二种共同点称为方法(how)。

比如,我们认识的字符串,属性有:引号,下标;方法有:都可以进行拼接操作。

Python中,每个类都有自己的独特的属性attribute和方法method,是这个类的所有实例都共享的。换言之,每个实例都可以调用类中所有的属性和方法。

在Python中,各个类的属性与方法需要我们自行创建。(当然也有一些属性与方法是Python设置好的,我们可以直接用。)

在这里插入图片描述
类的创建

接下来,我们定义一个“音乐人”类。

先来看一下下面代码:

class Musician:
    loveMusic = True   
    def sing(self):
          print('我在唱歌')

是不是so easy?音乐人类,属性是loveMusic值为True;方法是sing()可以打印“我在唱歌”。

我们具体解释下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值