面向物件,請珍惜我們的地球。珍惜我們的環境。在這個宇宙中,很可能真的只有我們——人類在孤獨的生存和奮鬥。
首先,計算機程式是為了解決問題而存在的,那麼怎麼才能更好的解決問題呢?——模仿自然。簡單的模仿就是面向過程。把某個事情的過程寫出來。這種思想的缺點是擴充套件性很差。所以為了解決這個問題,發展出了面向物件的程式設計思想。所謂的面向物件,就是對自然界中事物的模仿,在這個模仿的基礎上去擴充套件。所以自然而然就有了面向物件的一套程式設計理論。把自然界的事物高度抽象出來,作為這一類的事物都具有的特點和能力,那麼,這個抽象就是所謂的類。而根據類做出的具體的事物,就是所謂的物件了。先說類,類就是物件的圖紙。所以,物件應該具有或者說需要具有什麼功能,什麼特點,那麼就在類中寫出這些個特點和功能,但是這些功能和特點都應該屬於具體的某一個物件,所以這些功能和特點就應該用具體的物件來訪問,就是所謂的self。而為了更加合理的模仿大自然,或者為了更加合理的節省記憶體,發揮計算機的效率,給類這個物件也規定了一些特性,以便與更好的為物件服務。讓所有的物件都應該擁有的特性,並且每一個物件這個特行的值都應該是一樣的情況下,就不用每一個物件都去寫了,只要在類中寫明,就可以了,這樣每一個物件都天然有這個同樣值的同一個屬性。這就是類變數。類變數也叫做靜態變數,類變數最好用類去訪問。物件也可以訪問,但不符合規範,不能這麼做。總結,例項變數,給物件用的,用物件訪問,類變數(靜態變數),這個類的所有物件共享的變數,最好用類名來訪問,符合規範。那麼,有了類變數(靜態變數),就一定有靜態方法。宣告靜態方法的語句上面要加一條特定宣告語句:@staticmethod,以便與普通的物件方法做區別。@staticmethod是語法,必須這麼寫。與靜態方法相對的就是例項方法(物件方法)。物件方法就是普通的寫在類中的函式。成員方法(物件方法)必須要傳遞至少一個引數(self),靜態方法不需要傳遞引數。也就是說靜態方法不需要傳遞成員變數。或者說不需要傳遞成員變數的方法就可以用靜態方法。靜態方法和類變數(靜態變數)一樣都要用類名來訪問和呼叫。另一個和靜態方法差不多的就是類方法。類方法在引數列表中第一個引數就是cls,就是呼叫這個方法的類的名字,類方法在之前必須加一句語法@classmethod。面試題: 類⽅方法/靜態⽅方法和例項例⽅方法有什什麼區別?