前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >形象生动的解释什么是Python的类与对象

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

作者头像
测试小兵
发布2021-03-26 14:56:23
4580
发布2021-03-26 14:56:23
举报
文章被收录于专栏:猪圈子猪圈子

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

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

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

1. 新建类

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

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

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

代码语言:javascript
复制
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代码来描述的话,又该如何描述呢?具体代码如下

代码语言:javascript
复制
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这个类里所包含的方法

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python测试社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档