天天看點

pyton 封裝

定義:在類中将方法和屬性隐藏起來

1、格式

__名字,在名字前加雙下劃線

2、私有化對象

對象屬性

靜态屬性

普通方法

3、作用

1)在類的外面不能直接調用類的方法和屬性

2)類的屬性值不能随意更改

3)子類不能通過繼承擷取父類的私有化屬性和方法

4、實質

在代碼層次做了變形,在類的外部仍可通過  對象名或類命_類命__名字,來調用,不推薦使

1、property是内置裝飾函數,隻在面向對象中使用

2、作用

方法屬性,給方法加上裝飾器,可以在類的外部直接調用方法名而不是調用方法名()

動詞:方法,名詞:屬性

3、修改

屬性私有化,在類的外部不改變該屬性的調用方法

3、删除

不常用

4、總結

1)property是内置裝飾器

2)查

私有化屬性,可以通過定義同名方法和property裝飾器,而不改變在類外部的調用方法

3)改

查實作後,才能實作删

 通過同方法.setter裝飾器,裝飾同名方法來修改私有化屬性,而不改變在類外部的修改方法

4)删

類方法

作用:把一個對象方法,變成類方法,調用該方法可以直接通過類,而不需要對象

格式:有一個預設參數,cls

什麼時候用到:一個方法與私有化靜态屬性産生聯系

靜态方法

1)作用

在完全面向對象的程式中,若果一個函數,即和對象沒有關系,也和類沒有關系,那麼就可以用staticmethod裝飾該函數,作為類的靜态方法

2)細節

靜态方法在類的内部,在靜态方法中可以直接調用類,在類的外部可以通過類名調用靜态方法

類方法和靜态方法小結

1、都通過類名調用

2、類方法有一個預設參數,靜态方法沒有

3、類方法:和靜态屬性有關,通過類直接調用方法,不需要通過對象

4、靜态方法:和類及對象沒有關系,但又是必要的方法,python可以不用(面向對象和面向函數),完全面向對象必須用