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

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

内容简介:本节课,我们来学习,如何创建一个类, 也就是怎么用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 就代表当时那种情景下的自己

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


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

查看所有标签

猜你喜欢:

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

设计方法卡牌

设计方法卡牌

罗莎 等 / 电子工业出版社 / 2017-7 / 79.00

本套设计素材提供了54种设计方法,以卡牌的形式展示给读者,每张卡牌包括该设计方法的基本描述、目的、时间成本、工具渠道、使用阶段、操作步骤及其归类属性等信息。在做设计时,可以根据自己的需求进行卡牌的选择和组合,让设计工作更有灵活性和趣味性。同时,依据设计产品属性的不同,卡牌提供了选择设计方法的推荐模板、方法组合模板、产品阶段划分模板,给初学者在做设计时提供一定的理论依据,帮助读者启发设计灵感,剖析设......一起来看看 《设计方法卡牌》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码

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

URL 编码/解码