Python中私有化以及property的使用

2021-08-25 02:34:42 字數 1090 閱讀 6012

#第一種方式

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...