91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python面向對象編程封裝的概念

發布時間:2021-07-22 18:11:55 來源:億速云 閱讀:168 作者:chen 欄目:互聯網科技

這篇文章主要講解了“python面向對象編程封裝的概念”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python面向對象編程封裝的概念”吧!

封裝的定義

封裝是面向對象編程的一個重要概念。它是指將類中部分屬性和方法加以隱藏與保護,使其只能在類內部使用而不能被外部直接訪問。

封裝最重要的優點有2條:一是提高了數據安全性、二是提高了代碼健壯性。

封裝的方法

在類內部定義的變量前加雙下劃線即表示該變量是私有的,外部不能直接訪問。

class User:__private = 'secret'def __print():print(f'不能告訴你{User.__private}')

封裝的原理

加了雙下劃線的變量為啥不能從類的外部調用?請認真觀察private和print兩個變量:

class User:__private = 'secret'def __print():print(f'不能告訴你{User.__private}')print(User.__dict__)out:{
   
   
   '__module__': '__main__', '_User__private': 'secret', '_User__print': <function User.__print at 0x0000026476656280>, '__dict__': <attribute '__dict__' of 'User' objects>, '__weakref__': <attribute '__weakref__' of 'User' objects>, '__doc__': None}

類內部定義雙下劃線開頭的變量會被python自動轉換成 單下劃線類名 雙下劃線 變量名。在類外部不能定義私有變量,即類外部定義雙下劃線開頭的變量不會被自動轉換。所以在類外部直接訪問私有變量會報錯。在類內部可以直接訪問私有變量。

另外知道python封裝原理后,在類外部實際上還是可以直接訪問私有變量,案例如下:

class User:__private = 'secret'def __print():print(f'不能告訴你{User.__private}')print(User._User__private)User._User__print()out:secret
不能告訴你secret

但是強烈建議不要在類外部直接訪問類內部的私有屬性,這樣做破壞了封裝的規則,不利于數據安全性和代碼健壯性。

封裝的案例

運用封裝的有很多,下面舉一個小案例:

class User:def __init__(self, name, password):self.name = name
        self.__password = passworddef chgpwd(self):pwd = input('請輸入舊密碼:')if pwd == self.__password:pwd1 = input('請輸入新密碼:')pwd2 = input('請再輸入一次:')if pwd1 == pwd2 and len(pwd1) >= 6:self.__password = pwd1return Falsereturn Truen1 = User('張三', '123456')while n1.chgpwd():print('密碼修改失敗,請重試!')

在上述代碼中,__password是私有屬性,不能直接修改!若要修改必須通過chgwd()方法,在該方法中有驗證舊密碼和重復新密碼的功能,確保修改密碼合規。在多人配合的項目中封裝是不可或缺的手段。經常用來驗證輸入的數據值是否合理等等。

感謝各位的閱讀,以上就是“python面向對象編程封裝的概念”的內容了,經過本文的學習后,相信大家對python面向對象編程封裝的概念這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

图们市| 临洮县| 鹤庆县| 五寨县| 柘城县| 宜丰县| 简阳市| 广安市| 漳浦县| 宽城| 南昌县| 房山区| 剑阁县| 清流县| 赫章县| 阳西县| 寿阳县| 普宁市| 车致| 盖州市| 湘潭市| 雅江县| 疏勒县| 阿尔山市| 钟祥市| 凤冈县| 嵩明县| 景洪市| 潜江市| 罗山县| 长春市| 伊金霍洛旗| 澄城县| 安岳县| 宝清县| 搜索| 安陆市| 镇沅| 都江堰市| 禹城市| 冀州市|