python類的函數中,第一個參數必須為實例對象本身,約定俗稱記為self。self是實例本身,在外部調用類中的函數時,不需要給self賦值,但需要給其他的參數賦值。
與普通的函數相比,在類中定義的函數只有兩點點不同:
1、第一個參數永遠是 self ,並且調用時不用傳遞該參數。
2、在類中函數相互調用要加 self ,不加,會報錯:函數未定義。
self 就是把 class 中 定義的 變量和函數 變成 實例變量和實例函數,作為類 class 的成員,使得成員間能互相調用,而不需要從外部調用 數據(即變量)和 方法(即 函數),以實現數據的封裝
函數def _init_(self,name,score),用於創建實例時,將必須綁定在實例上的屬性強制綁定上去。
p:類函數參數除了第一個參數必須是self且不用傳參之外,其他參數使用和普通函數一樣,可以使用默認參數,可變參數和關鍵字參數,(*args是可變參數,args接收的是一個tuple,**kw是關鍵字參數,kw接收的是一個dict)。
python 中一些特殊的實例變量:
1、私有變量(private),只有內部可以訪問,外部不能訪問,私有變量是在名稱前以兩個下划線開頭,如:__name,其實私有變量也不是完全不能被外部訪問,不能直接訪問是因為python解釋器對外把 __name 變量改成了 _類名__name,所仍然可以通過 _類名__name 來訪問 __name .
2、在Python中,變量名類似__xxx__的,也就是以雙下划線開頭,並且以雙下划線結尾的,是特殊變量,特殊變量是可以直接訪問的,不是private變量,所以,不能用__name__、__score__這樣的變量名。
3、以一個下划線開頭的實例變量名,比如_name,這樣的實例變量外部是可以訪問的,但是,按照約定俗成的規定,當你看到這樣的變量時,意思就是,“雖然我可以被訪問,但是,請把我視為私有變量,不要隨意訪問”
參考:
https://blog.csdn.net/xrinosvip/article/details/89647884