1. 程式人生 > >Python基礎17_類中的成員

Python基礎17_類中的成員

 一. 類的成員
    在類中能寫的所有內容都是類的成員
二. 類的成員-變數
    1. 例項變數(欄位)
    例項化物件的變數, 由物件訪問
    2. 類變數(靜態變數)
    變數屬於類, 多個物件共享的, 最好用類名訪問(可以修改), 但物件也可以訪問(不可以修改)
三. 類的成員-方法
    1. 成員方法(例項方法)
    定義例項方法時, 必須給出一個引數self(本類中的物件), 且該引數在第一個位置, 呼叫時自動把物件傳遞給形參的self, 呼叫時不需要再給出self
    2. 靜態方法
    @staticmethod
    屬於類, 好比在類中定義了一個函式, 靜態方法不需要我們給方法傳遞self, 也就是說, 當出現一個方法不需要使用到成員變數的時候, 就可以選擇使用靜態方法. 推薦使用類名訪問
    3. 類方法
    @classmethod
    屬於類, 子類可以繼承父類的類方法, 在宣告的時候需要給出一個能夠接受類名的引數(cls), 放在引數的第一個位置, 類方法在被呼叫的時候也不需要傳遞例項物件, 但是, 系統會自動把類傳遞給第一個引數
四. 類的成員-屬性
    @property
    屬性其實就是把方法更改為屬性, 每次拿屬性的時候就會自動呼叫這個方法, 方法的返回值就是屬性值
    缺點: 此屬性不可以賦值(因為方法不能賦值)
    注意: (1).方法引數只能有一個self (2).方法上要寫@property (3). 呼叫的時候, 不需要寫括號, 直接當做屬性變數來用就可以了 (4). 這個套路只能取值, 不能設定值
    當某個屬性必須經計算才能得到結果時, 會用到這種方法
五. 私有
    所有以 __ 開頭的方法和變數都是私有內容, 子類無法繼承, 外界無法訪問, 除非自己想暴露
    1. 私有變數
    私有的內容不能訪問, 但是如果對方開闢了外界訪問的通道(公共方法), 那可以通過這個公共方法來獲取私有的內容, 這樣做的好處是外界只能看但是改不了, 
    例項變數和類變數都可以私有
    2. 私有方法
    外界無法訪問到本類中的私有方法, 但是本類中可以呼叫