python定義靜態(tài)變量 python為什么要使用靜態(tài)方法?
python為什么要使用靜態(tài)方法?Python使用靜態(tài)方法類似函數(shù)工具使用,一般盡量少用靜態(tài)方法。Python的靜態(tài)方法和類成員方法都可以被類或?qū)嵗L問(wèn),兩者概念不容易理清,但還是有區(qū)別的:1.靜態(tài)方
python為什么要使用靜態(tài)方法?
Python使用靜態(tài)方法類似函數(shù)工具使用,一般盡量少用靜態(tài)方法。
Python的靜態(tài)方法和類成員方法都可以被類或?qū)嵗L問(wèn),兩者概念不容易理清,但還是有區(qū)別的:
1.靜態(tài)方法無(wú)需傳入self參數(shù),類成員方法需傳入代表本類的cls參數(shù);
2.從第1條,靜態(tài)方法是無(wú)法訪問(wèn)實(shí)例變量的,而類成員方法也同樣無(wú)法訪問(wèn)實(shí)例變量,但可以訪問(wèn)類變量;
3.靜態(tài)方法有點(diǎn)像函數(shù)工具庫(kù)的作用,而類成員方法則更接近類似Java面向?qū)ο蟾拍钪械撵o態(tài)方法。
靜態(tài)方法里面的變量,是靜態(tài)還是非靜態(tài)的?
分兩種:第一種,在靜態(tài)方法中不實(shí)例化一個(gè)對(duì)象(new Object),這種情況下靜態(tài)方法中需要調(diào)用的變量和方法都必須是靜態(tài)的。第二種,在靜態(tài)方法中實(shí)例化一個(gè)對(duì)象,這種情況下,該實(shí)例化的對(duì)象中的變量和方法都不需要靜態(tài)的。
為什么訪問(wèn)靜態(tài)方法和靜態(tài)變量不需要實(shí)例化?
靜態(tài)變量 在java也叫類變量從名字可以看出它是屬于某個(gè)類的而不是類的實(shí)例。它的關(guān)鍵字是static存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū),當(dāng)程序執(zhí)行,類的代碼被加載到內(nèi)存,類的靜態(tài)變量就分配了內(nèi)存空間,他是屬于類的也就是沒(méi)個(gè)實(shí)例對(duì)象都是對(duì)于以個(gè)靜態(tài)變量,靜態(tài)變量的內(nèi)存空間知道程序退出才釋放所占用的內(nèi)存空間。靜態(tài)變量直接通過(guò)類名訪問(wèn)(java 也能通過(guò)對(duì)象名訪問(wèn))。 有人會(huì)分全局的靜態(tài)變量、局部的靜態(tài)變量;全局靜態(tài)變量失去了“全局”的普遍含義,它的作用域限定在本文件里。而靜態(tài)變量的聲明是應(yīng)該出現(xiàn)在類里不是類的函數(shù)里。