import datetime
class
person
(object):
def__init__
(self,name,age)
: self.name = name
self.age = age
self.__money =
1000
#以兩個下劃線 __ 開始的變數是私有變數
defget_money
(self)
:print
('{}查詢了餘額'
.format
(datetime.datetime.now())
)return self.__money
defset_money
(self,qian):if
type
(qian)
!=int
:print
('設定的餘額不合法'
)return
print
('修改餘額了'
) self.__money = qian
def__demo
(self)
:#以兩個下劃線開始的函式是私有函式,在外部無法呼叫
print
('我是demo函式,name = {}'
.format
(self.name)
)def
test
(self)
: self.__demo(
)p = person(
'張三',18
)print
(p.name,p.age)
#可以直接獲取到
#print(p.__money)會報錯 #不能夠直接獲取到私有變數
#獲取私有變數的方法
"""1.使用物件._類名__私有變數名獲取"""
print
(p._person__money)
"""2.定義get和set方法來獲取"""
print
(p.get_money())
p.set_money(
'hello'
)print
(p.get_money())
"""3.使用property來獲取"""
結果
張三 18
1000
2021-01
-1821:
10:03.609700查詢了餘額
1000
設定的餘額不合法
2021-01
-1821:
10:03.610579查詢了餘額
1000
process finished with exit code 0
python 私有屬性和視為私有屬性
python模組中的視為私有屬性 總的來說,python中有 幾種特殊的屬性 在python模組中,我們經常會見到 x 其中後面兩種 x 是習慣上的私有變數,我們不應該在外部使用它,而是應該通過呼叫內部函式來使用,但這裡是不應該而不是不能,所以要靠我們自覺遵守這個標準,另外,在自定義模組的時候,也要...
Python學習筆記(14) 私有屬性 私有方法
只允許在類內部訪問的屬性叫做私有屬性 表現形式 在屬性前加兩個下劃線,如self.name 私有屬性的特點 只能在類內部中訪問,類外部訪問則報錯 私有屬性的好處 防止屬性在類外被隨意更改 示例1 定義乙個狗類,設定私有屬性 name,在類外直接訪問私有屬性dog1.name class dog de...
python中的私有屬性
我們先來看前置雙下劃線 以前置雙下劃線定義的屬性和方法,例項物件和子類無法呼叫和訪問。首先看看例項物件對於私有方法的訪問許可權 class grandfather def init self self.name grandpa self.age 80 私有屬性 self.money 1000 私有方...