1.例項方法/動態方法
a).識別符號:-
b).呼叫方式:(例項物件 函式)
c).例項方法在堆疊上。
2.靜態方法/類方法
a).識別符號:+
b).呼叫方式:(類 函式)
c).靜態方法在堆上分配記憶體。
3.靜態方法和例項方法的區分
a).靜態方法常駐記憶體,例項方法不是,所以靜態方法效率高但佔記憶體。事實上,方法都是一樣的,在載入時機和占用記憶體上,靜態方法和例項方法是一樣的,在型別第一次被使用時載入。呼叫的速度基本上沒有差別。
b).靜態方法在堆上分配記憶體,例項方法在堆疊上。事實上所有的方法都不可能在堆或者堆疊上分配記憶體,方法作為**是被載入到特殊的**記憶體區域,這個區域是不可寫的。
c).例項方法需要先建立例項才可以呼叫,比較麻煩,靜態方法不用,比較簡單。
d).靜態方法是靜態繫結到子類,不是被繼承。
e).一般使用頻繁的方法用靜態方法,用的少的方法用動態的。靜態的速度快,佔記憶體。動態的速度相對慢些,但呼叫完後,立即釋放類,可以節省記憶體,可以根據自己的需要選擇是用動態方法還是靜態方法。
f).靜態方法修改的是類的狀態,而物件修改的是各個物件的狀態。
g).類的例項呼叫是在類的生命週期中存在,當類沒有了以後,對應的例項也就沒有了,對應的方法也就沒有了。靜態類不然,只要你引用了那個靜態類的命名空間,它就會一直存在,直到我們推出系統。
類變數 例項變數 類方法 例項方法 靜態方法。
classa aa 1def init self,x,y self.x x self.y y a a 2,3 a 是例項 aa 是類變數 如果用a.aa 100 修改的是類的變數 a.aa 101 會在a例項中建立乙個名叫aa的屬性,並賦值,如果本身就有aa屬性,才修改。class date 建構函...
例項方法 靜態方法 類方法
首先新建乙個日期date類,屬性為年,月,日,tomorrow 是例項方法,這個最常見,比較簡單,例項方法的第乙個引數是例項物件self 當我們傳入的年月日是2018 6 4這樣的形式,我們就需要先進行字串處理,在這裡使用了元組的拆包 這是最基本的方式,但是這樣寫會有乙個問題,每次傳參都需要進行字串...
類方法,例項方法,靜態方法
python 中的三種方法,有三種類方法,例項方法,靜態方法,這三種方法都在類中,區別在於呼叫的方式不同。例項物件能的呼叫這三種方法,類只能呼叫類方法和靜態方法。class foo object def init self,name self.name name deford func self 定...