深入理解python之self
发布时间:2025-09-29 11:04:23

首先,很明显,self只存在于类别方法中,独立的函数或方法不需要带来self。self必须定义类别方法,尽管在调用时不需要引入相应的参数。
self的名字不是必须的。self不是python中的关键词。你可以把它定义为a、b或其他名字,但它是粗俗的(为了统一其他编程语言,降低理解难度)。不要做另类。你不会理解的。在下一个例子中,将self改为myname没有错:
classPerson:
def_init_(myname,name):
myname.name=name
defsayhello(myname):
print'Mynameis:',myname.name
p=Person('Bill')
printpself是指类实例对象本身(注意:不是类本身)。
classPerson:
def_init_(self,name):
self.name=name
defsayhello(self):
print'Mynameis:',self.name
p=Person('Bill')
printp在上述例子中,self指向Person的实例p。 为什么不指向类本身呢?以下例子:
classPerson:
def_init_(self,name):
self.name=name
defsayhello(self):
print'Mynameis:',self.name
p=Person('Bill')
p1=Person('Apple')
printp1假如self指向类本身,那么当有多个实例对象时,self指向哪一个?
总结
self在定义时需要定义,但在调用时会自动传输。
self的名字没有规定死亡,但最好按照约定使用self
self总是指调用类的例子。
