Abstract
学习Python中,对self有些疑惑,就查了些资料,列出我看到资料进行整理。
self
python 里所有的 object 都有三个属性, 标识(identity), 类型(type) 和值(value). 其中 identity 可以用 id 函数获得, CPython 里的实现是 object 的内存地址. 值就是 object 具体存放的数据, 而 type, object 的类型, 决定了可以对数据所进行的操作.
指定变量的类型和对变量的初始化其实是分开的. 比如在 C 里面, 你可以写:
int a;
a = 1;
这里定义变量 a 的类型和对 a 的初始化是分开的. 但实际上, 通常情况下我们定义一个变量或者实例, 都想让它存储一些数据. 类似Python,变量的类型和对变量的初始化也是分开的,Python先调用__new__创建实例(instance),再调用__init__对实例进行初始化
所以,self代表一个类的实例(instance),使用self,我们可以访问类(class)的属性(attrubutes)和方法(methods)
self不是一个Python的关键字,它是函数的一个参数,所以可以使用其他但是变量名代替self,但是为了增强代码的可读性,最好使用self.
# Write Python3 code here
class this_is_class:
def show(in_place_of_self):
print("we have used another parameter name in place of self")
object = this_is_class()
object.show()
#Output:
#we have used another parameter name in place of self