#来源于学习过程中一些优质的CSDN文章,以及书本上的知识。

#以下为本人学习中的一些感悟

#此处我会介绍class的定义与使用 ,self的含义,以及__init___()函数初始化

                                           class类的定义与使用

在现实生活当中,世界万物都被我们划分一个个种族,一个个类。比如说动物的血缘近亲中的一个词语“类”   在我们的编程语言中也存在一个“类”去定义区分———class

class类的语法定义如下:

class  类名称():


何为类名称?我们不妨这样理解:比如说我们要定义一个rapper歌手,他会有他自己的名字,性格(属性) ,有他自己的做事风格(方法),那么我们就可以用他这整个人来成为一个类 去囊括这些东西,也就是———类名称   比如:

python 限定class范围_python

此处我们便完成了一个class的定义

由此看到 方法和函数定义方法相似 但是在class中我们称它为方法 

在属于class的对象(object)情况下,我们才可以随时调用里面的属性以及方法

现在我们需要定义对象变量————object 简称为  对象

在定义了对象后,我们便可以通过:

object.类的属性

object.类的方法()

来实现调用

python 限定class范围_对象创建_02

这样子就可以启动类中的方法以及属性

那么到现在还有一个东西令我们十分疑惑 就是这个———self变量 

self参数有什么作用呢?请看接下来的操作

python 限定class范围_python 限定class范围_03

由此处看到我在调用interdouce.singings()时里面的变量不是回传给self变量而是传回给了songs参数

self调用时要忽略,而“the moon”传给了参数songs

忽略self,因为self会接受对象(object)传入的数据,当对象创建之后,对象就会代替self,self时所有对象的替身,就相当于歌手的经纪人,以歌手的名义处理事务一样。就如上面这个代码一样,参数直接传输给songs而不是self,因为它忽略l,但是它必须存在,不然这个函数就不是在对象创建的条件下的函数,不能被调用

self总结:对象化这个东西,相当于我在上面创建的rapper(),传输参数的时候,自行忽略就行

如下图所示

python 限定class范围_python 限定class范围_04

对比上一图可以发现

line1-3都没有发生改变,而是我在line4的  def say直接 改变为 def say(self):

省略掉了第二参数,而是留下了self参数, 在print那里我将name前加入了self  就变为self.name

为何要如此做,因为:在类里面调用属性时要加上对象化 ,那是写成rapper()的格式嘛,也不能说错,但是我们有更简便的写法 也就是———self.属性名

这样便可随时调用类里面的属性了,但忘记在属性名上加上self 

于是写成self.name就可以调用了

小结:类的属性调用前加上self.属性名就ok了,self在类里面就相当于对象 就如同rapper() 一样

可以将所有self编写成rapper()形式,此外self这个参数也不一定要是这样命名,因为在后续的项目编写的时候,会有格式格式的类,如果的都是以self命名,容易混乱。

第二点,如果我们想在类里的方法中调用其它类中的方法可以使用-----self.类方法()进行调用

如图

python 限定class范围_python 限定class范围_05

可以看出self.dance()这个方法在dance()中被调用

__init__()初始化格式

在建立类的很重要的一个工作就是初始化整个类 

所谓的初始化类就是在类里面建立一个初始化方法(method)

初始化方法的作用是:在对象创立的时候,该代码无需调用就会自动运行

如下图的代码

python 限定class范围_类名_06

我们可以看到,这里我们仅仅创建了对象,便可直接调用方法__init__()

这是因为它初始化的时候,只要类的对象被创建出来,它便可以自动运行。

那么我们在__init__()写一些属性可以直接调用吗

答案是:yes   只要我们在属性前加上self.便可  

如下图所示:

python 限定class范围_python_07

这就是__init__()函数的一些基础知识,后面我还会继续关于类的知识 

如:类的继承   等一些列知识

如有不对的地方欢迎指出,如有阐释错误之处,我会加以改正,欢迎在评论区讨论,谢谢