Python學習筆記(14) 私有屬性 私有方法

2022-04-18 04:37:40 字數 1332 閱讀 4702

只允許在類內部訪問的屬性叫做私有屬性

表現形式:在屬性前加兩個下劃線,如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 ...