類的變數分成2種: 1、成員變數 概念:在構造方法中的變數,前面帶有self 作用:可以在類中不同的方法間使用 2、類變數-靜態變數 概念:在類中,構造方法和普通方法之外,定義的變數 作用: 1、調用 1、類名可以調用 類名.類變數 2、對象名也可以調用 對象名.類變數 ... ...
類的變數分成2種: 1、成員變數 概念:在構造方法中的變數,前面帶有self 作用:可以在類中不同的方法間使用 2、類變數-靜態變數 概念:在類中,構造方法和普通方法之外,定義的變數 作用: 1、調用 1、類名可以調用 類名.類變數 2、對象名也可以調用 對象名.類變數 2、修改 1、只能是類名才能修改 類名.類變數 = 類變數的新值 2、對象名不能修改 特別註意:如果用 對象名.類變數=值,這個是對對象新增了一個屬性,和類變數沒有任何關係 總結: 1、類變數用類名來操作(訪問和修改),比較規範 類變數就不要用對象名來操作 2、類變數建議寫在類中的構造方法之前,也是規範
類中的方法分類: 1、成員方法-實例方法-最常見 1、寫法 第一個參數是self,對象本身 2、調用 對象來調用成員方法 2、靜態方法-函數 1、寫法 1、參數,不需要傳self 2、方法名字前面加上@staticmethod 2、調用 類名來調用靜態方法 3、例子 字典中的fromkeys 就是一個靜態方法 4、適用場景 當做函數來看 3、類方法 1、寫法 1、第一個參數是cls,表示類名 2、方法名上方加上@classmethod 2、調用 類名來調用類方法 3、適用場景 可以在類方法中創建對象
類中的屬性 1、概念 用一個方法的返回值來表示屬性 2、寫法 1、 @property 2、方法的參數只有一個self 3、方法必須有返回值 return 3、調用 1、對象名.屬性名 註意:屬性名就是方法名,屬性後面不能加小括弧 4、適用場景 1、人的年齡就不適合當做成員變數來存儲,而應該把生日作為成員變數-欄位 2、但是年齡是人的一個屬性,就可以通過生日來換算出來 3、人的年齡是一個屬性,如果通過成員方法-動作來計算也可以,但是用屬性-名詞更好一些 5、註意點 調成員方法和調屬性的區別 1、前者 對象名.成員方法名() 方法名後面有小括弧 2、後者 對象名.屬性 屬性後面沒有小括弧
類中的私有 1、分類 私有變數 私有方法 2、寫法 私有變數:變數名字前面加上__ 私有方法:方法名字前面加上__ 3、特點 1、私有變數: 對象無法訪問私有變數 2、私有方法: 對象無法訪問私有方法 4、如何訪問私有變數和私有方法 1、對象可以通過調用成員方法,間接訪問私有變數 私有變數只能在自己類中訪問 2、對象可以通過調用成員方法,間接調用私有方法 私有方法只能在自己類中調用 5、適用場景 1、用的比較少(私有變數和私有方法,在python中)
成員 概念: 在類中定義的變數和方法都被稱為成員 1、變數 1、成員變數--重點1 定義:在構造方法中定義的 別名:實例變數,欄位(對應數據表的欄位) 寫法:self.變數名 2、類變數 定義:在類中,構造方法和普通方法之外定義的變數就是類變數 寫法: 一般是通過類名來調用的 類名.類變數 別名:靜態變數 特點:共用出去的 2、方法 1、成員方法--重點2 定義:類中的普通方法 寫法:預設第一個參數是self 調用:通過對象來調用 2、類方法 定義:第一個參數預設是cls,表示類名 寫法:方法名字上一行是@classmethod 用法:主要用於在類方法中創建對象,設計模式 3、靜態方法 定義:參數沒有self,即靜態方法不需要傳遞當前類的對象 寫法:方法名字上一行是@staticmethod 理解:把靜態方法理解成類中的函數就可以了 3、屬性 定義:用方法-動作來描述屬性信息 例子:比如人的年齡,一般都是通過出生日期計算出來的 1、age用變數定義,會每年都變,不適合 2、age用普通方法來計算,是可以的 但是普通方法一般是一個動作,age是一個屬性(名詞) 3、age用屬性來表示,比較適合 寫法: 1、屬性的寫法和普通方法類似,但是上面需要加一行@property 2、只有一個參數self 3、必須有返回值 調用:對象調用屬性的時候,屬性名字後面是不加小括弧的 這一點,和對象調用方法有區別,方法名字後是加小括弧的 4、私有 1、私有變數 定義:只能在類中使用,對象無法直接訪問私有變數 寫法:__變數名,即變數名前面加上雙下劃線 用法:對象可以通過調用成員方法,間接訪問私有變數 成員方法中,私有變數的訪問,寫法是self.__私有變數 2、私有方法 定義:只能在類中使用,對象無法直接訪問私有方法 寫法:__方法名,即方法名前面加上雙下劃線 用法:對象可以通過調用成員方法,間接調用私有方法 成員方法中,有私有方法的調用,寫法是self.__私有方法名()