您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關怎么使用Python對象屬性的set和get,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
屬性的set和get方法
如果有一個對象,當需要對其進行修改屬性時,有2種方法:
1.對象名.屬性名 = 數據 —->直接修改
2.對象名.方法名() —->間接修改
為了更好的保存屬性安全,即不能隨意修改,一般的處理方式為:
1.將屬性定義為私有屬性。
2.添加一個可以調用的方法,供調用。
class Person(object): def __init__(self, name): #以__開頭的屬性表示私有屬性,不允許外部訪問 self.__name = name def getName(self): return self.__name def setName(self,newName): if len(newName)>=5: self.__name = newName else: print("Error:輸入的名字長度不夠") xiaoming = Person("Se7eN_HOU") print(xiaoming.__name)
運行結果為:
Traceback (most recent call last): File "C:\Users\Se7eN_HOU\Desktop\demo.py", line 16, in <module> print(xiaoming.__name) AttributeError: 'Person' object has no attribute '__name'
修改為如下代碼:
class Person(object): def __init__(self, name): #以__開頭的屬性表示私有屬性,不允許外部訪問 self.__name = name def getName(self): return self.__name def setName(self,newName): if len(newName)>=5: self.__name = newName else: print("Error:輸入的名字長度不夠") xiaoming = Person("Se7eN") xiaoming.setName("Se7eN_HOU") print(xiaoming.getName()) xiaoming.setName("HOU") print(xiaoming.getName())
運行結果為:
Se7eN_HOU Error:輸入的名字長度不夠 Se7eN_HOU
說明:
1.Python中沒有像C++中public和private這些關鍵字來區別公有屬性和私有屬性。
2.它是以屬性命名方式來區分,如果在屬性名前面加了2個下劃線’__’,則表明該屬性是私有屬性,否則為公有屬性(方法也是一樣,方法名前面加了2個下劃線的話表示該方法是私有的,否則為公有的)。
以上就是怎么使用Python對象屬性的set和get,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。