怎么理解Python当中self的含义

刚开始学习Python的类写法的时候觉得self很不理解,当你看完这篇文章后就会明白所有的疑问。

神奇的self:

在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。

class是面向对象的设计思想,instance(也即是object,对象)是根据class创建的

一个类(class)应该包含数据和操作数据的方法,通俗来讲就是属性和函数(即调用方法)

类class中为啥用使用self?

在类的代码(函数)中,需要访问当前的实例中的变量和函数,即,访问Instance中的:

对应的变量(property):Instance.ProperyNam,去读取之前的值和写入新的值调用对应函数(function):Instance.function(),即执行对应的动作

-而需要访问实例的变量和调用实例的函数,当然需要对应的实例Instance对象本身

-而Python中就规定好了,函数的第一个参数,就必须是实例对象本身,并且建议,约定俗成,把其名字写为self

-所以,我们需要self(需要用到self)

self代表类的实例,而非类。

实例来说明

执行结果如下

从上面的例子中可以很明显的看出,self代表的是类的实例。而self.__class__则指向类。

理解self,看如下示例:

所谓的self,可以理解为

可以把self当做C++中类的this指针样理解,就是对象身的意思

某个对象调其法时,python解释器会把这个对象作为第个参数传

递给self

注意:

1、__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法的内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身

2、使用了__init__方法,在创建实例的时候就不能传入空的参数了,必须传入与__init__方法匹配的参数,但是self不需要传,python解释器会自己把实例变量传进去




转载请注明:http://www.aierlanlan.com/rzgz/1161.html