property 私有屬性

2021-08-15 08:26:02 字數 2411 閱讀 4943

# -*- coding: utf-8 -*-

class

people

(object):

def__init__

(self, name, age):

self.name = name

self.age = age

# 私有屬性

self.__number = 0

# 這倆函式的作用,就是在為了在類宣告的外部,可以訪問到私有屬性

# 專門定義函式獲取私有屬性值

# def num(self):

# # 返回私有屬性值

# return self.__number

## # 專門定義函式設定私有屬性值

# # qwer是乙個函式名 隨便取

# def qwer(self,value):

# # 給物件的屬性賦值

# self.__number = value

# # 專門定義函式刪除私有屬性

# def delete_attr(self):

# # 刪除屬性

# del self.__number

# 獲取私有屬性值 number = p1.number 會執行這個函式

@property

defnumber

(self):

# 返回私有屬性值

return self.__number

# 設定私有屬性值 p1.number = 666

@number.setter

defnumber

(self, value):

# 設定__number的值

self.__number = value

# 刪除私有屬性 del p1.number 會執行這個函式

@number.deleter

defnumber

(self):

# 刪除屬性

del self.__number

# @property

# def work(self): # 當rs = 物件.work 會執行這個函式

# print('執行了@property裝飾的work函式')

## @work.setter # 當物件.work = 值 會執行這個函式

# def work(self, value):

# print('執行了@work.setter裝飾的work函式')

## @work.deleter # 當 del 物件.work 會執行這個函式

# def work(self):

# print('執行了@work.deleter裝飾的work函式')

p1 = people('張三', 22)

# 執行@property裝飾的函式

# p1.work

# 執行@work.setter裝飾的函式

# p1.work = 2000

# 執行@work.deleter裝飾的函式

# del p1.work

# 在類宣告的外部,無法直接訪問私有屬性

# number = p1.num()

# print(number)

# 在類宣告的外部,無法直接訪問私有屬性

# p1.__number = 1000

# p1.qwer(1000)

# number = p1.num()

# print(number)

# 在類宣告的外部,無法直接訪問私有屬性

# del p1.__number

# p1.delete_attr()

# 正常的物件屬性賦值

# 物件.屬性名 = 屬性值

p1.name = '李四'

# 獲取物件的屬性值

name = p1.name

# 刪除物件的屬性

del p1.name

# 私有屬性公升級版

# 會去執行@property裝飾number函式,函式執行完成後返回乙個結果

num = p1.number

print(num)

# 會去執行@number.setter裝飾的number函式,在函式中設定__number屬性的值

p1.number = 666

# 會去執行@property裝飾number函式,函式執行完成後返回乙個結果

print(p1.number)

# 會去執行@number.deleter裝飾的number函式,在函式中會將__number屬性刪除

del p1.number

# 會去執行@property裝飾number函式,函式執行完成後返回乙個結果

print(p1.number)

property屬性引數

1.讀寫屬性 預設是readwrite,會生成getter和setter方法 如果是readonly表示只會生成getter方法 2.setter處理 預設是assign 賦值 因此基本資料型別不需要加這個引數。因為在setter方法裡,我們經常要將乙個物件賦值給類的成員屬性,這個時候根據記憶體管理...

Property 屬性動畫

單個屬性動畫 objectanimator offloat view,rotationx 0,180 setduration 3000 start 多個屬性動畫 多個屬性動畫組合 設定乙個中心點 view.setpivotx 0.5f view.setpivoty 0.5f 方式一 建立多個屬性動畫...

屬性(Property)動畫

屬性動畫與補間動畫的區別 最大的區別是補間動畫就算控制項移動到任何位置,控制項本身位置還是不變。而屬性動畫是直接改變控制項的位置。從某種角度看,屬性動畫是增強版的補間動畫,其強大體現在兩方面 補間 tween 動畫只能定義兩個關鍵幀在透明度 旋轉 傾斜 位移這4個方面的變化,而屬性動畫可以定義任何屬...