python隱藏類中屬性的3種實現(xiàn)方法
更新時間:2019年12月19日 17:12:28 作者:人生與戲
今天小編就為大家分享一篇python隱藏類中屬性的3種實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
方法一:
效果圖一:

代碼一:
# 定義一個矩形的類
class Rectangle:
# 定義初始化方法
def __init__(self,width,height):
self.hidden_width = width
self.hidden_height = height
# 定義獲取width、height的方法
def get_width(self):
return self.hidden_width
def get_height(self):
return self.hidden_height
# 定義修改width、height的方法
def set_width(self,width):
self.hidden_width = width
def set_height(self,height):
self.hidden_height = height
# 定義一個獲取矩形面積的方法
def get_area(self):
return self.hidden_width * self.hidden_height
# 創(chuàng)建Rectangle的實例
r_one = Rectangle(3,4)
# 輸出打印 r_one的widh
print(r_one.get_width()) # 輸出 3
# 輸出打印 r_one的area
print(r_one.get_area()) # 輸出 12
# 改變width
r_one.set_width(5)
print(r_one.get_area()) # 輸出 20
方法二:
效果圖二:

代碼二:
# 可以為對象的屬性使用雙下劃線開頭,__xxx
# 雙下劃線開頭的屬性,是對象的隱藏屬性,隱藏屬性只能在類的內(nèi)部訪問,無法通過對象訪問
# 其實隱藏屬性只不過是Python自動為屬性改了一個名字
# 實際上是將名字修改為了,_類名__屬性名 比如 __name -> _Person__name
class Person:
def __init__(self,name):
self.__name = name
def get_name(self):
return self.__name
def set_name(self , name):
self.__name = name
p = Person('孫悟空')
# print(p.__name) # 報錯:AttributeError: 'Person' object has no attribute '__name'
#__開頭的屬性是隱藏屬性,無法通過對象訪問
p.__name = '豬八戒' # 這個設(shè)置無效,不會報錯
print(p._Person__name)
p._Person__name = '沙和尚'
print(p.get_name())
方法三: 常用的
效果圖三:

代碼三:
# 使用__開頭的屬性,實際上依然可以在外部訪問,所以這種方式一般不用
# 一般會將一些私有屬性(不希望被外部訪問的屬性)以_開頭
# 一般情況下,使用_開頭的屬性都是私有屬性,沒有特殊需要不要修改私有屬性
class Person:
def __init__(self,name):
self._name = name
def get_name(self):
return self._name
def set_name(self,name):
self._name = name
p = Person('牛一')
print(p._name)
以上這篇python隱藏類中屬性的3種實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python+Django搭建自己的blog網(wǎng)站
一直有種想要搭建自己博客系統(tǒng)打沖動,可惜需要前端知識較多,而且還要安裝一系列軟件并配置(windows平臺),后來偶然發(fā)現(xiàn)了Django這個神器,恰巧剛學(xué)過python,于是就又裝了ubuntu(安裝各種軟件配置都方便),折騰了半天,終于搭建起來自己的第一個簡易博客。2018-03-03
Python使用multiprocessing實現(xiàn)一個最簡單的分布式作業(yè)調(diào)度系統(tǒng)
mutilprocess像線程一樣管理進程,這個是mutilprocess的核心,他與threading很是相像,對多核CPU的利用率會比threading好的多,通過本文給大家介紹Python使用multiprocessing實現(xiàn)一個最簡單的分布式作業(yè)調(diào)度系統(tǒng),需要的朋友參考下2016-03-03
Python實現(xiàn)從常規(guī)文檔中提取圖片的方法詳解
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)從常規(guī)文檔(Word,PDF,Excel,HTML)中提取圖片的方法,有需要的小伙伴可以參考一下2025-03-03
基于python實現(xiàn)Pycharm斷點調(diào)試
這篇文章主要介紹了基于python實現(xiàn)Pycharm斷點調(diào)試,在我們寫程序的時候,很容易遇到各種各樣的bug,然后編譯器提示程序出錯的地方。很多時候可以通過提示的信息修改程序,但是有時我們想得到更多的信息,這個時候就需要進行斷點調(diào)試,下面我們就一起來學(xué)習(xí)ycharm斷點調(diào)試2022-02-02

