Python3.x:self参数是什么鬼?

这片文章只对self参数讨论,不对其他内容进行扩展,所以看之前希望你对面向对象编程有一些了解

self参数到底是什么呢?为什么类中的函数都要有一个self方法?总结起来,就是一句话

self代表的是调用拥有self参数的函数的那个调用者

What?到底是什么,完全不明白

是,我刚一开始也是看不懂,一头雾水,但是书读百遍,其义自现,多读几遍,下面,我们就带着这句话来了解self参数到底是什么

Python3.x:self参数是什么鬼?_第1张图片

带着上面对self参数理解的那句话来看这个例子,aa是一个拥有self参数的函数,属于类A,self 代表的是他的调用者,那到底是谁呢?

In [4]: jj.aa()

很明显,实例化生成的jj对象调用的aa()函数,所以说,在这里,self代表的就是jj这个实例化生成的对象

这样我们也能理解为什么要有这个self参数了:

我们实例化生成一个对象,里面有我们传的参数等等,我们得到了这个对象,要怎么使用类中的函数呢?怎么将类中的函数和生成的对象以及对象中传的参数关联起来呢?这时候我们就用到了self参数,这个self就相当于一个形参,我们把这个对象传给这个形参,就实现了调用这个函数

接着我们再回过头看self参数的定义,你是不是有了自己的理解了呢?

有的人可能会问,那self不就是哪个对象调用的就代表谁么,为什么不说self是调用函数的对象?

这种说法没有错,但是不全面,比如在类的继承(具体理解请戳面向对象三大特性之继承)中,我们通过子类生成的对象去调用父类的方法,这个时候把self称作调用者来说会更好一些

关于self参数的理解就到这里,以上多属个人理解,如果有理解不对的地方还请指出

转载请注明出处

python自学技术互助扣扣群:670402334

你可能感兴趣的:(Python3.x:self参数是什么鬼?)