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

作者: james_chang | 来源:发表于2018-02-01 17:55 被阅读16次

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

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

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

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

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

带着上面对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参数是什么鬼?

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

  • Swift之Self、self

    self我知道,Self是什么鬼?其实Self我们会时不时遇到的,只是我们没有注意而已。 Self Self其实主...

  • 蟒蛇日志|self(自己)

    问题:Python 中的self的作用是什么? 这其实是函数和类的区别,函数不需要self,类需要这个参数。 以下...

  • Objective-C 中 self 和 super

    self 和 super 的区别:self 是类的一个隐藏参数,每个方法的实现的第一个参数即为 self。supe...

  • 面对对象编程-python学习20

    类的二个关键点: 1、特殊参数:self 特殊参数self的作用:self会接收实例化过程中传入的数据,当实例对象...

  • 四、函数成员:方法 @GeekBand

    全局函数 成员函数 -:实例方法 self 实例对象 +:类型方法 self 类的类型 内部参数名 外部参数名 方...

  • self

    一、self和_cmd是隐藏参数,在编译期被插入实现代码。self:self是类的一个隐藏参数,每个方法的实现的第...

  • Lua中冒号(":")和点号(".")的区别

    一、定义方法的区别 (1)冒号定义——默认会接受self参数 (2)点号定义——默认不会接受self参数 二、调用...

  • Swift学习笔记-方法

    1.self的使用条件 当方法中参数和属性名字相同时,默认使用参数,这时候加上self就可以区别属性和参数。 2....

  • Objective-C中的self和super理解

    1、self是一个隐藏参数变量 self是一个隐藏参数变量,指向当前调用方法的对象,还有一个隐藏参数是_cmd,代...

网友评论

    本文标题:Python3.x:self参数是什么鬼?

    本文链接:https://www.haomeiwen.com/subject/vufjzxtx.html