#-*- coding:utf-8#@property
負責裝飾乙個物件函式,讓其生成對應的
setter
和getter
函式,呼叫的時候可以直接使用物件名
.函式名
#函式名不加括的形式,這種類似屬性的呼叫方式來執行函式
class man(object):
#@property
裝飾的物件函式就是乙個
getter
函式,一般來獲取某些資料,不會向函式中傳遞引數 物件
.函式名
@property
def work(self):
print('
執行@peoperty
裝飾類')
return
123#@worker.setter
裝飾的函式,可以向該函式中傳遞引數,物件
.函式名
= 引數值,一般用來設定某些資料
@work.setter
def work(self, value):
#具體功能**
print('
傳遞進來的資料為
%s'%value)
m = man()
m.work
m.work = 123
class student(object):
def
__init__(self):
self.__number = 2014020222
#定義乙個函式,用來獲取私有屬性值的函式
def get_number(self):
return
self.__number
#定義乙個函式,用來設定私有屬性值
def set_number(self, value):
self.__number = value
#@property
裝飾乙個物件函式,在這個物件函式中,返回
_number
的值#@property
會將age
函式宣告乙個
getter
函式,getter
函式一般用來獲取值的操作,
#所以一般都會返回乙個執行結果
@property
def number(self):
#返回私有屬性
return
self.__number
#@number.setter
用來裝飾物件函式,設定私有屬性
@number.setter
def number(self, value):
#設定私有屬性
self.__number = value
s =student()
number = s.get_number()
print(number)
s.set_number(2015020222)
#通過呼叫
@property
裝飾的number
函式獲取私有屬性值
number = s.number
print(number)
#通過呼叫
@number.setter
裝飾的number
函式,設定私有屬性
s.number =2018020222
print(s.number)
'''物件有乙個
age屬性,在給
age屬性賦值時,只能賦予整數型別的值,如果不是整數,丟擲異常
'''class women(object):
def
__init__(self, age):
if not
isinstance(age, int):
#觸發異常
raise
typeerror('age must be int number!')
self.age = age
def set_age(self, value):
if not
isinstance(value, int):
raise
typeerror('age must be int number!')
self.set_age = value
@property
def age(self):
return
self._age
@age.setter
def age(self, value):
#判斷傳遞過來的值是否為整數型別,不是整數型別的直接丟擲異常
if not
isinstance(value, int):
raise
typeerror('age must be int number!')
self._age = value
#判斷當前年齡是否大於等於
if self._age >= 18:
print('you are adult!')
else:
print('you are teenager!')
w = women(18)
#w.set_age('asdf')
w.age = 15
print(w.age)
JS中Attribute和property的區別
在使用angular中的資料繫結時,發現對html屬性和dom屬性不是很清楚,順便屢屢清楚這二者的區別。attribute html屬性,書寫在標籤內的屬性,使用setattribute 和getattribute 進行設定和獲取。property dom屬性,html標籤對應的dom節點屬性,使用...
Python 今天抽空學習了 Property
1 property使方法像屬性一樣呼叫 property可以把乙個例項方法變成其同名屬性,以支援.號訪問,它亦可標記設定限制,加以規範 2 property成為屬性函式,可以對屬性賦值時做必要的檢查,比如在setter方法裡加過濾判斷條件。3 顯得相對簡潔一些,相比自定義的get和set方法,pr...
python中 python中的 與
這一部分首先要理解python記憶體機制,python中萬物皆物件。對於不可變物件,改變了原來的值,其別名 變數名 繫結到了新值上面,id肯定會改變 對於可變物件,操作改變了值,id肯定會變,而 是本地操作,其值原地修改 對於 號操作,可變物件和不可變物件呼叫的都是 add 操作 對於 號操作,可變...