對於初學python,對類和方法的理解絕對讓很多人崩潰了。特別是裡面的self,簡直莫名其妙。
但python簡明教程裡面對這段內容其實講解的非常清楚。
類和物件是物件導向程式設計的兩個主要方面。類建立乙個新型別,而物件這個類的 例項 。這類似於你有乙個int型別的變數,這儲存整數的變數是int類的例項(物件)對於類中的self,完全可以這樣理解:物件可以使用普通的 屬於 物件的變數儲存資料。屬於乙個物件或類的變數被稱為域。物件也可以使用 屬於 類的函式來具有功能。這樣的函式被稱為類的方法。這些術語幫助我們把它們與孤立的函式和變數區分開來。域和方法可以合稱為類的屬性。
域有兩種型別——屬於每個例項/類的物件或屬於類本身。它們分別被稱為例項變數和類變數。
類使用class關鍵字建立。類的域和方法被列在乙個縮排塊中。
類的方法與普通的函式只有乙個特別的區別——它們必須有乙個額外的第乙個引數名稱,但是在呼叫這個方法的時候你不為這個引數賦值,python會提供這個值。這個特別的變數指物件本身,按照慣例它的名稱是self。所以,self只是乙個比較特殊的引數,而這個引數指的就是物件本身。理解了python的內部機制,就很容易了。乙個例子是這樣的:
假如你有乙個類稱為myclass和這個類的乙個例項myobject。當你呼叫這個物件的方法myobject.method(arg1, arg2)的時候,這會由python自動轉為myclass.method(myobject, arg1, arg2)——這就是self的原理了。其他的內容,可以在《python簡明教程》這本書中找到。如果你剛好看完了《笨方法學python》,那麼這本書是對前一本很好的補充。而且不會浪費很長時間,幾個小時就夠看完了。
關於類的方法 不是類方法 ,類方法指標
關於類的方法 不是類方法 類方法指標 關於類的方法 不是類方法,這裡指object pascal中的靜態方法,相當於c 的成員函式 1 帶有隱含引數 self 2 方法是方法,資料是資料。3 delphi的方法是乙個結構 type tmethod record code pointer 方法的入口位...
oc關於類方法和物件方法的區別
1.首先使用方法 類方法呼叫是直接用類名直接呼叫,不需要例項化物件 物件方法需要例項化乙個物件才能呼叫 2.範圍 類方法不能呼叫本身類中的成員方法和成員變數,物件方法可以呼叫本身類中的成員方法和成員變數 3.宣告也不同 類方法開頭時 宣告 物件方法是用 宣告 4.定義情況 什麼時候定義物件方法,什麼...
python 關於使用例項和類名引用類方法的實驗
假如程式如下 class aaa name 沒有 age 0 def init self,name tom age 10 self.name name self.age age def aa self print self.name,self.age classmethod 注意這裡有修飾 def ...