不怎么能理解面向对象编程中的self
小甲鱼把self比作门牌号,那么每个门牌号都是self咯? 你实例化啥,self就是啥。 heidern0612 发表于 2021-1-14 08:34你实例化啥,self就是啥。
意思就是我实例化了一个对象后,self就指向该对象,然后无论我执行类中的不管任何方法,都会根据self的这个指向来完成指令吗?
suede 发表于 2021-1-14 08:53
意思就是我实例化了一个对象后,self就指向该对象,然后无论我执行类中的不管任何方法,都会根据self的这 ...
类中带self的指令都指向实例化本身。
不带的基本都是静态属性,也就是类属性。
self 参数就是指实例对象本身,举些例子:
假如你定义了一个 Fishc 类,当你实例化对象时 A = Fishc() 那么此时 A 就代表 Fishc() 类实例对象中的 self ,即本身
所以在类中带 self.xxx 的就是指获取自身实例对象所有属性或者方法
类属性 和 局部变量很类似,但是存放范围不同
类属性是放在类中的方法外,类内的空间
而局部变量是定义于类方法中的,他们都是以 变量名 = 数值 来定义变量的
而实例属性就比较好分辨,即 self.变量名 = 数值 这样特定格式来定义的
本帖最后由 jackz007 于 2021-1-14 11:06 编辑
self 只在类的方法定义中有用,比如
def reversed(self):
pass
def foo(self):
self . reversed()
return self . x + self . y
只有加了 self 前缀,才知道访问的是类的属性和方法,否则,与访问全局变量 x、y 及 Python 的内置函数 reversed() 有什么区别?
页:
[1]