本文參考http://www.cnblogs.com/linuxcat/archive/2012/01/05/2220997.html
Python中的self一般用於類的方法中,當然一個獨立的函數也可以加上self參數,但是如果沒有需要豈不是在給自己找麻煩,因為調用的時候還要傳進去一個空參數(我以前都是這樣做的,慚愧)。
self在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。當然self也可以換成其他的自己喜歡的詞,除非你不想讓別人讀取懂自己的程序
#coding=utf-8 class Person: def __init__(self,name): self.name=name def sayhello(self): print 'Hello, my name is:',self.name p=Person('Bill') p.sayhello()
self指的是類實例對象本身而不是類本身。個人認為self的作用主要是標示公有成員變量的作用,我們知道,在C++中,可以用private或者public來定義類的一個屬性,即類成員變量,這個變量可以被類中的所有方法使用。但是,python是一種動態語言,使用變量前不用定義或者聲明,那么,如果我在類的一個方法定義了一個變量,這個變量就唯一的屬於這個方法,如果其他方法想用這個變量呢?不好意思,不能使用。而使用self則可以解決這個問題,self會告訴所有的方法:這個變量是我們共有的,可以隨便用喲
#coding=utf-8 class Person: def __init__(self,name): self.name=name mame1=name #name1只屬於_init_方法,sayhello不能使用 def sayhello(self): print 'Hello, my name is:',self.name p=Person('Bill') p.sayhello()