python - self

python中的self,究竟是什麼角色?python


1. 首先明確的是self只有在類的方法中才會有,獨立的函數或方法是沒必要帶有self的。self在定義類的方法時是必須有的,雖然在調用時沒必要傳入相應的參數。ide

2. self名稱不是必須的,在python中self不是關鍵詞,你能夠定義成a或b或其它名字均可以,可是約定成俗,不要搞另類,你們會不明白的。下例中將self改成myname同樣沒有錯誤:函數


[root@leco day8]# cat t1.py 
class Person:
    def __init__(myname,name):
        myname.name = name
    def sayhello(myname):
        print 'My name is:',myname.name
p=Person('Bill')
p.sayhello()
[root@leco day8]# python t1.py 
My name is: Bill


self指的是類實例對象自己(注意:不是類自己)。對象

[root@leco day8]# cat t2.py it

#!/usr/bin/env python
class Person:
    def __init__(self,name):
        self.name = name
    def sayhello(self):
        print 'My name is:',self.name
p=Person('Bill')
p.sayhello()


在上述例子中,self指向Person的實例p。 爲何不是指向類自己呢,以下例子:class

[root@leco day8]# cat t3.py 方法

#!/usr/bin/env python
class Person:
    def __init__(self,name):
        self.name = name
    def sayhello(self):
        print 'My name is:',self.name
p=Person('Bill')
p1=Person('Jack')
p.sayhello()
p1.sayhello()
[root@leco day8]# python t3.py 
My name is: Bill
My name is: Jack

若是self指向類自己,那麼當有多個實例對象時,self指向哪個呢?di

相關文章
相關標籤/搜索