专栏首页猪圈子形象生动的解释什么是Python的类与对象

形象生动的解释什么是Python的类与对象

Python是基于面向对象的编程语言,那什么是面向对象的思想呢?这要从面向对象的两大概念说起:一个是类,另一个是对象。何为类呢?

类是具有相同属性和方法的一类事物的抽象描述,而对象就是这一类抽象事物的具体实例。

在程序设计当中,类和对象是什么关系呢?如何利用类和对象解释面向对象的思想?接下来,本节将通过实例来简述这些问题。

1. 新建类

现实生活中我们经常将年轻有型的小伙叫帅哥,那么帅哥代表的就是年轻有型的一类人,而不是指具体的某个人。

既然称得上是帅哥,那么称为帅哥的这一类人肯定有一些共同的行为,具体如下所示。称为帅哥的这一类人的共同行为如下。

a. 唱歌能力 b. 跳舞能力如果要用Python代码来描述帅哥这一类人所拥有的共同行为,应该如何描述呢?具体代码如下

class shuaige:
  def changge(self):
    print("我会跳舞")
  def tiaowu(self):
    print("我会跳舞")

【代码分析】

a. 第01行代码,class用来定义一个类名,这里定义了一个叫Shuaige的类名,后面跟冒号,那么Shuaige就代表了帅哥的这一类人。

b. 第02行代码和第03行代码,def关键字用来定义帅哥这一类人的共同行为,这里把帅哥的第一个共同行为命名为chang_ge,行为名后面跟一对括号如chang_ge()

这种以行为名加括号的方式就构成了一个具体的行为,行为名的括号里面有一个参数self,这个参数暂时不用理它

chang_ge()这个行为后面还跟了一行代码:print("我会唱歌"),这行代码就是行为的具体实现,也就是chang_ge()这个行为要实现的就是打印出“我会唱歌”这几个字。

c. 第04行代码和第05行代码,使用关键字def继续定义帅哥这一类人的另一个行为,也就是继续定义另一个方法

方法的名字叫tiao_wu,而tiao_wu()这个方法要实现的就是打印出“我会跳舞”这几个字。

【注意事项】

a. 在Python语言里,把帅哥的共同行为都称为方法,也就是说这里定义了一个名为chang_ge()的方法,注意方法名后面有一个冒号。

b. 从以上的代码分析可以看到,Shuaige这个类(也就是帅哥的这一类人)中两个方法(也就是帅哥这一类人所共有的两个行为特征)都被包含在Shuaige这个类里面了

也就是说Shuaige这个类里面提供了两种方法,而且这两种方法要实现的功能都已经在Shuaige这个类的内部准备好了。

2. 新建对象

以帅哥这一类人为例,对象指的就是帅哥这一类人当中的某一个具体的实例,也就是某一个具体的帅哥,比方说名为zhangsan的帅哥那么zhangsan这个具体的帅哥如果用Python代码来描述的话,又该如何描述呢?具体代码如下

class shuaige:
  def changge(self):
    print("我会跳舞")
  def tiaowu(self):
    print("我会跳舞")

zhangsan = shuaige()
zhangsan.tiaowu()

【代码分析】

a. 第06行代码,Shuaige这个类里面是一群帅哥,只要在类名后面加一对括号就会实例化一个帅哥,如Shuaige()就会“出炉”一个帅哥

而zhangsan = Shuaige()的意思是将刚“出炉”的这个帅哥命名为zhangsan,此时zhangsan就是一个具体的帅哥了。在Python语言里把zhangsan这个帅哥称为对象或称为实例。

b. 在Python语言中,把zhangsan称为变量,这个变量可以用于保存相关的数据信息,可以理解为变量是一个容器的名字,

这个容器可以存放数字、字符串、对象等信息

本例通过Shuaige()“出炉”的帅哥相当于存放在了一个名为zhangsan的容器中,所以zhangsan代表了这个帅哥。

c. 既然zhangsan这个帅哥(实例)是从Shuaige这个类里“出炉”的,那它自然也就拥有帅哥这一类人所共有的行为了

也就是说zhangsan这个帅哥(实例)拥有Shuaige这个类里所包含的方法

本文分享自微信公众号 - 猪圈子(Tester-sc)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-03-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 神经网络激励函数的作用是什么?有没有形象的解释?

    地址 | https://www.zhihu.com/question/22334626/answer/103835591

    Datawhale
  • Python函数是所谓的第一类对象(First-Class Object)是什么鬼?

    之前写过一篇关于装饰器的文章,虽然写得还算不错,但是也有不少同学表示没看懂,我大概分析了其中的原因,主要问题是他们不理解函数,因为Python中的函数不同于其它...

    用户7886150
  • Java中抽象类与接口的区别是什么?

    海拥
  • 什么是深度学习,几个名词的简单形象通俗解释,让你看就记住

    这个故事包含了,有监督,无监督,训练数据集,测试数据集,过拟合 ---- 第一眼看到“学习”,大多数人想到的是读书、上课、写作业,我们就拿它作为切入点。上课时,...

    Albert陈凯
  • 浅析python中的元类类也是对象动态地创建类用type创建类 metaclass属性元类到底有什么用

    在python中,一切皆是对象,就连生成对象的类,自身也是一个对象。既然类也是一个对象,那么类也可以被作为参数传递,也可以赋值给其他变量...

    章鱼喵
  • 【宠粉通道】叫我讲解的一道前端JS面试题-灵魂三问:prototype?类的prototype是什么?对象的proto是什么

    每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一...

    达达前端
  • 是否还在疑惑Vue.js中组件的data为什么是函数类型而不是对象类型

    要理解本篇文章,必须具备JavaScript中基本数据类型和引用数据类型的概念,大家可以花两分钟看一下,瞬间就能理解——面试题被问到再也不慌,深究JavaScr...

    @零一
  • C#抽象类与抽象方法--就是类里面定义了函数而函数里面什么都没有做的类

    看一下代码应该就可以了 using System; using System.Collections.Generic; using System.Linq; u...

    杨奉武
  • 【Java 面试题系列 05】Class类的作用是什么?如何获取Class对象?

    Class 类是 Java 反射机制的起源和入口,用于获取与类相关的各种信息,提供了获取类信息的相关方法。

    方才编程_公众号同名
  • 总结了50道必备的Python面试题(附答案)

    近期又是高考成绩出炉日,又是高校学生毕业季,同学们终于可以在这个暑期躺平了。可这跟我(一位职场老鸟)有什么关系。。。不还得继续搬砖~

    数据STUDIO
  • 金三银四,50道必备的Python面试题(建议收藏)

    在过去的2020年,Python赢得了年度TIOBE编程语言奖,成为过去一年最受欢迎的编程语言。在数据科学和机器学习等领域中,被广泛使用。

    小F
  • Python面试必刷题系列(2)

    python提供了将变量或值从一种类型转换成另一种类型的内置函数。比如int函数能够将符合数学格式数字型字符串转换成整数。否则,返回错误信息。

    小萌哥
  • 五年Python程序员平时学习笔记总结

    像list, tuple等这些序列是可以使用for...in ...语句来进行遍历输出的。这是为什么呢?这就需要知道可迭代对象(Iterable)、迭代器对象(...

    python学习教程
  • 备战九十,iOS面试题菜单,持续更新(题目及答案已上传Github)

    iOSSir
  • Python后端技术栈(一)

    Happiness is a way of travel. Not a destination.

    小闫同学啊
  • 如何用形象的比喻描述大数据的技术生态?Hadoop、Hive、Spark 之间是什么关系?

    Hadoop只是一套工具的总称,它包含三部分:HDFS,Yarn,MapReduce,功能分别是分布式文件存储、资源调度和计算。

    后端码匠
  • 关于python中set与dict的无序问题

    每个熟悉python的人都知道,python提供给了我们各种各样原生的数据结构,如list、tuple、set、dict等等。这些形形色色的数据结构为我们程序猿...

    kirin
  • 关于Python的20个面试题

    Python 是一个高级、解释型、交互式和面向对象的脚本语言. Python 语言设计具有高度可读性的, 使用一些常见的英语词组和其他语言常用的标点符号组成的语...

    用户1416054
  • 面试分享系列 | 17道Python面试题,让你在求职中无往不利

    今天给大家分享的是Python面试题系列的第一篇文章,后续我也会陆续整理Python相关的问题给大家,无论是求职者还是新人都可以通过面试题来考察自己的能力缺陷。...

    小小科

扫码关注云+社区

领取腾讯云代金券