隱藏屬性
1、如何隱藏
再要隱藏的資料前面加__即可
2、隱藏屬性注意點
1、在類定義階段,發生了語法上的變形(變為_類名__屬性名)
2、隱藏對外不對內
3、只有在定義階段發生變形,其他情況都不發生變形了
3、為什麼要隱藏
1、類裡面的隱藏屬性,類外部可以使用,但是目的不是讓類外部使用的,類外部如果想要使用,在類內部開放介面繼續寧訪問
2、可以達到對外部資料的嚴格控制
4、**演示
classproperty裝飾器1、作用就是把方法偽裝成屬性student():
__school = 'sh'
#_student__school => _類名__屬性名
def__init__
(self, name, age):
self.
__name =name
self.age =age
def__tell_info(self): #
_student__tell_info => _類名__函式名
print('
name: %s, age: %s
' % (self.__name
, self.age))
defget_school(self):
return self.__school
#self._student__school
defset_school(self, v):
if type(v) is
notstr:
print('
資料型別不合法')
#if isinstance(v, str):
return
self.
__school = v
2、**演示
class3、練習bmi指數:計算公式如下student():
__school = 'sh'
#_student__school => _類名__屬性名
def__init__
(self, name, age):
self.
__name =name
self.age =age
def__tell_info(self): #
_student__tell_info => _類名__函式名
print('
name: %s, age: %s
' % (self.__name
, self.age))
@property
#把方法偽裝成屬性
defname(self):
return
"name:%s
" % self.__name
@name.setter
defname(self, v):
if type(v) is
notstr:
print('
資料型別不合法')
#if isinstance(v, str):
return
self.
__name =v
@name.deleter
defname(self):
print('
不讓刪'
)stu = student('
ly', 18)
(stu.get_name())
stu.name = 123
(stu.name)
del stu.name
體質指數(bmi)=體重(kg)÷身高^2(m)ex:70kg÷(1.75×1.75)=22.86
class4、擴充套件property也可以這樣使用bmi():
def__init__
(self, height, weight):
self.height =height
self.weight =weight
@property
defget_bmi(self):
return self.weight / (self.height ** 2)
bmi = bmi(1.8, 70)
print(bmi.get_bmi)
classstudent():
__school = 'sh'
#_student__school => _類名__屬性名
def__init__
(self, name, age):
self.
__name =name
self.age =age
def__tell_info(self): #
_student__tell_info => _類名__函式名
print('
name: %s, age: %s
' % (self.__name
, self.age))
defget_name(self):
return
"name:%s
" % self.__name
defset_name(self, v):
if type(v) is
notstr:
print('
資料型別不合法')
#if isinstance(v, str):
return
self.
__name =v
defdel_name(self):
print('
不讓刪'
)
#了解name =property(get_name, set_name, del_name)
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個方面的變化,而屬性動畫可以定義任何屬...