只允許在類內部訪問的屬性叫做私有屬性
表現形式:在屬性前加兩個下劃線,如self.__name
私有屬性的特點:只能在類內部中訪問,類外部訪問則報錯
私有屬性的好處:防止屬性在類外被隨意更改
示例1:
定義乙個狗類,設定私有屬性__name,在類外直接訪問私有屬性dog1.__name
class dog:
def __init__(self,new_name):
self.__name = new_name
dog1 = dog("泰迪")
print(dog1.__name)
執行後報錯:
traceback (most recent call last):
file "f:/untitled/python_jichu/私有屬性.py", line 7, in
print(dog1.__name)
attributeerror: 'dog' object has no attribute '__name'
示例2:
定義乙個狗類,設定私有屬性__name,定義獲取屬性方法get_name,在類外通過呼叫get_name方法訪問私有屬性__name
class dog:
def __init__(self,new_name):
self.__name = new_name
def get_name(self):
return self.__name
dog1 = dog("泰迪")
name = dog1.get_name()
print(name)
執行結果:
泰迪只允許在類內部呼叫的方法叫做私有方法
表現形式:在方法前加兩個下劃線,如__getname(self)
私有方法的特點:只能在類內部中呼叫,類外部呼叫會報錯
私有方法的使用場景:通過其他某個方法判斷,當滿足判斷條件時允許呼叫私有方法
示例:class message:
def __send_msg(self):
print("正在傳送簡訊。。。。")
def send_msg(self,new_money):
if new_money >10:
self.__send_msg()
else:
print("餘額不足,請充值。。。")
msg1 = message()
msg1.send_msg(100)
當傳入的數值大於10時會呼叫__send_msg私有方法,列印正在傳送簡訊。。。。,當傳入的數值小於10時則不會呼叫__send_msg私有方法,列印餘額不足,請充值。。。
python學習筆記013 模組中的私有屬性
在python中,沒有類似private之類的關鍵字來宣告私有方法或屬性。若要宣告其私有屬性,語法規則為 屬性前加雙下劃線,屬性後不加 雙 下劃線,如將屬性name私有化,則 name 即可。實際上,屬性前加單下劃線,屬性後不加下劃線也可以 name 1 以乙個下劃線開頭的識別符號 不能訪問的方法或...
Python學習筆記 14
本節主要有 tips 如果不想改變原資料,傳遞引數時盡量用其副本 函式也是乙個物件 物件是記憶體中專門用來儲存資料的一塊區域 一切皆物件 函式的引數 defrt a print zzzz a rt 3 def sum a,b,c print a b c sum 4,5,8 定義形參時可以指定默值,沒...
Python學習筆記14 模組
在python中所有的模組都被加入到了sys.path中,用下面的方法可以看見模組的位置。import sys import pprint pprint.pprint sys.path usr local python2.7 lib python27.zip usr local python2.7 ...