Python中面向对象-怎么创建一个类

栏目: Python · 发布时间: 6年前

内容简介:本节课,我们来学习,如何创建一个类, 也就是怎么用python画设计方案先来看一下 前面课程里出现过的 几张设计方案
文字有点长,对于不想看文字的朋友,可以去这里看视频,视频可能更好理解

https://www.piqizhu.com/v/1GK...

本节课,我们来学习,如何创建一个类, 也就是怎么用 python 画设计方案

先来看一下 前面课程里出现过的 几张设计方案

Python中面向对象-怎么创建一个类

前面女娲造人的故事里,女娲创造了6张设计方案

我们接下来根据那个故事的节奏,也来创造6张设计方案

创建类

创建 物种设计图 的类

先来看第一张设计方案, 物种设计方案

Python中面向对象-怎么创建一个类

这张设计图,里的东西,有四肢,还有个头、身体

那么我们设计的类如下:

class 物种设计方案:
    头 = 1
    前肢 = 2
    后肢 = 2
    身体 = 1

要创建一个类, 和创建一个函数差不多,

先写一个class,然后一个空格, 接着写类的名字,

类的名字和变量名的命名规则一样,通常类名建议驼峰命名法

也就是要像个骆驼

Python中面向对象-怎么创建一个类

比如,

你的类名是 man 那么应该写成 Man

如果你的类名是 goodman 那么你应该写成 GoodMan

每个单词的首字母用大写,如果只有一个字母,首字母要大写, 如果有多个单词,每个单词首字母都要大写

这只是行业里的一个约定,并没有强制规定,你不遵守也可以

我这里的例子,为了方便大家理解,会使用中文汉字

class 后面的 物种设计方案 就是我的类名, 类名后面一个冒号

接着换行,一个缩进,我这里给这个类,增加了4个属性,就像 声明变量一样

同样为了便于大家理解,这里的变量名我也用了中文汉字

Python中面向对象-怎么创建一个类

这里的 物种设计方案 就是我们创建的类的名字,简称类名

Python中面向对象-怎么创建一个类

在类中的这几个变量,就是这个类的属性, 就和我们平时的变量是一样的,但这里的这几个变量,归属于这个类, 就好比,我们大家都归属于中国

如此,我们就完成了, 物种设计方案的制作

创建 动物设计方案 的类

接下来,在这个基础上,制作一个动物设计方案

Python中面向对象-怎么创建一个类

class 动物设计方案(物种设计方案):
    def 吃东西(self):
        pass
    def 跑(self):
        pass
    def 叫(self):
        pass

你可以发现,这个类,和上个类十分相似,但也有一些区别,

比如,类名后面多了个括号,括号里多了 物种设计方案 几个字,

而且这个类里面,居然写了3个函数,这分别都是什么含义呢?

类名后面的括号,写了谁,就表示这个类要继承谁, 我们这里的 动物设计方案, 继承了 物种设计方案,

所以, 物种设计方案,被写在了, 动物设计方案后面的括号里, 这个括号,就是用来表示声明继承关系的

这里我们可以看出 动物设计方案的 父类 就是 物种设计方案

而 物种设计方案,在类名后面,直接就是问号,没有括号,他没有继承别人吗?

Python中面向对象-怎么创建一个类

其实是有的, 在Python内部, 某个类没有声明继承的话,Python会自动继承object类, 关于object类是什么, 我们以后会讲, 暂时你只要记住

在Python里,所有类都是object类的后代

那么类里面外面写的这3个函数是啥意思呢? 这3个函数就是类的方法, 通常我们叫做类方法,

Python中面向对象-怎么创建一个类

而且你应该也看到了, 类方法的第一个参数都是self,这个参数是必须要传的,不能少, 但这个参数名字你可以改成别的, 比如 你可以改成, a, 或者别的

Python中面向对象-怎么创建一个类

不过,为了便于大家理解, 行业里,大家统一都写的是self,所以,建议你也遵守这个规定

这几个类函数,我们是留空的,写了个pass语句,没有填充内容,因为目前我们还不知道写什么好

创建 人类设计方案 的类

Python中面向对象-怎么创建一个类

现在,让我们基于 人类设计方案,创造一个类吧

class 人类设计方案(动物设计方案):
    type_name = "人"
    def 吃东西(self):
        print(self.type_name, ":开始用嘴巴吃东西")
    def 跑(self):
        print(self.type_name, ":用", self.后肢 ,"条 后肢跑")
    def 叫(self):
        print(self.type_name, ":啊啊啊")

Python中面向对象-怎么创建一个类

我们给这个类,添加了一个属性,type name, 值为 人

Python中面向对象-怎么创建一个类

并且,我们把从父类那里继承来的3个方法, 进行了重载,也就是把从父类那继承来的类方法里面的代码,进行了修改,写入了新的代码,这几个类方法,父类中就写了个pass,我们这里改成了print语句,这里面你可以写任何代码,就和函数没什么两样

接着我们创建 狗类、猫类、鸭类

class 狗类设计方案(动物设计方案):
    type_name = "狗"
    def 吃东西(self):
        print(self.type_name, ":开始用嘴巴吃东西")
    def 跑(self):
        print(self.type_name, ":用", self.前肢+ self.后肢 ,"条腿 跑")
    def 叫(self):
        print(self.type_name, ":汪汪汪")

class 猫类设计方案(动物设计方案):
    type_name = "猫"
    def 吃东西(self):
        print("开始用嘴巴吃东西")
    def 跑(self):
        print(self.type_name, ":用", self.前肢+ self.后肢 ,"条腿 跑")
    def 叫(self):
        print("喵喵喵")

class 鸭类设计方案(动物设计方案):
    type_name = "鸭"
    def 吃东西(self):
        print("开始用嘴巴吃东西")
    def 跑(self):
        print(self.type_name, ":用",  self.后肢 ,"条 后肢 跑")
    def 叫(self):
        print("嘎嘎嘎")

你可以看到,我们给这几个类的类方法都填充了代码,

你应该已经发现了, 每个类,都有一个 type_name 属性

Python中面向对象-怎么创建一个类

而且,在类方法中,都用到了type_name 这个属性,并且,前面还多出了一个 self.

Python中面向对象-怎么创建一个类

self. 这是什么意思呢? 这里的self 就代表 这个类自己

比如,人类设计方案, 这个类中的self,就代表这个 [人类设计方案] ,我们这里 打印 self.type_name

就表示 要打印, 人类设计方案 中的type_name,

同样的道理, 在狗类设计方案中,打印 self.type_name ,就表示要访问 狗类设计方案 的 type_name属性

self 就代表当时那种情景下的自己

如果你还不理解不要紧,接下来的课程里,我们会详细的讲解


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

支持向量机

支持向量机

邓乃扬、田英杰 / 科学出版社 / 2009-8 / 48.00元

《支持向量机:理论、算法与拓展》以分类问题(模式识别、判别分析)和回归问题为背景,介绍支持向量机的基本理论、方法和应用。特别强调对所讨论的问题和处理方法的实质进行直观的解释和说明,因此具有很强的可读性。为使具有一般高等数学知识的读者能够顺利阅读,书中首先介绍了最优化的基础知识。《支持向量机:理论、算法与拓展》可作为理工类、管理学等专业的高年级本科生、研究生和教师的教材或教学参考书,也可供相关领域的......一起来看看 《支持向量机》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试