#第一種方式
class
test
(object):
def__init__
(self):
self.__num = 100
#get_num函式專門用來獲取__num屬性值
defget_num
(self):
return self.__num
#set_num函式專門用來設定__num屬性值
defset_num
(self,new_num):
self.__num = new_num
#定義的num就是在外面用到的屬性名,property括號中前面放get方法的名字,後面放set方法的名字
num = property(get_num,set_num)
t = test()
t.num = 200
#直接通過訪問屬性的形式來呼叫set_num()方法,並將等號右邊的引數傳進去
print(t.num)#通過同樣的方式來呼叫get_num()方法
#雖然都是t.num的方式呼叫方法,python直譯器會根據是否有賦值來選擇呼叫的方法
#第二種方式
class
test
(object):
def__init__
(self):
self.__num = 100
#在get方法的上面寫上@property,函式的名字就是屬性的名字
@property
defnum
(self):
return self.__num
#在set方法的上面寫上@屬性名.setter,函式的名字更get方法相同,都等於屬性的名字
@num.setter
defnum
(self,new_num):
self.__num = new_num
t = test()
t.num = 200
#呼叫了下面的num()方法進行設定
print(t.num)#呼叫了上面的num()方法獲取值
python私有化方法 Python 私有化
python中的私有變數和私有方法仍然是可以訪問的 訪問方法如下 私有變數 例項.類名 變數名 私有方法 例項.類名 方法名 python並沒有真正的私有化支援,但可用下劃線得到偽私有。盡量避免定義以下劃線開頭的變數 1 單下劃線 開始的成員變數叫做保護變數,意思是只有類例項和子類例項能訪問到這些變...
Python特性 屬性以及私有化
特性是物件內部的變數 物件的狀態由它的特性來描述,物件的方法可以改變它的特性 可以直接從物件外部訪問特性 定義 class person name yoda 類中特性 defget name self 通過訪問器方法訪問特性 return self.name defset name self,val...
python魔法方法以及私有化
一 私有化 以雙下劃線開頭,以雙下劃線結尾的,python自帶的,已經擁有特殊的含義 自己屬性或者函式不能這樣命名 class tsg a 1 b 2 def fun self print 如果人睡覺是為了做夢 def fun2 self return 那我寧可不睡覺 s tsg print s.a...