什麼是封裝呢?
在前面是不是寫過這樣的**
class dog:
froom = "ch"
def __init__(self, name, age, kind="erha"):
self.blood = 100
self.kind = kind
self.age = age
self.name = name
在當時我是不是說__ini__下放的是例項的私有變數?
其實這麼說是不對的
這只能說是例項變數,或者是成員變數
當時只是為了讓你能夠好理解才那麼表述的
這才算是私有屬性
玩過角色扮演類遊戲的都知道
每個人物都是有基礎屬性且不可被修改的
很明顯,如果我還是像上面那麼定義乙個私有屬性的話
那我在外面就可以呼叫並且修改
class dog:
froom = "ch"
def __init__(self, name, age, kind="erha"):
self.blood = 100
self.kind = kind
self.age = age
self.name = name
pass
d = dog("ponny", 3)
d.blood += 10
print(d.blood)
但是我不想在外面修改,因為這畢竟算是個「不可變的」引數
這就引出來我們要說的東西,封裝
封裝可以被認為是乙個保護屏障,防止該類的**和資料被外部類定義的**隨機訪問。
要訪問該類的**和資料,必須通過嚴格的介面控制。
封裝最主要的功能在於我們能修改自己的實現**,而不用修改那些呼叫我們**的程式片段。
適當的封裝可以讓程式碼更容易理解與維護,也加強了**資料的安全性。
*有點東西*
*繼續深究*
(六)物件導向高階程式設計
如果我們想要限制例項的屬性怎麼辦?比如,只允許對student例項新增name和age屬性。為了達到限制的目的,python允許在定義class的時候,定義乙個特殊的slots變數,來限制該class例項能新增的屬性 class student object slots name age 用tupl...
六 物件導向(中)
類的構造方法 類的訪問許可權 繼承 多型 init 構造方法 作用 用於物件建立時初始化 書寫格式 init前後分別是兩個下劃線 程式不顯示定義init方法,則程式預設呼叫乙個無參init方法 物件建立過程 類的構造方法 init 設定物件屬性 def init self.gender,variet...
六 物件導向案例分析
編寫乙個完整的位址類進行測試,並列印出來class address public address string countrv,string porvince,string city,string district public void send public string getcountrv ...