python中的 property裝飾器詳解

2021-08-15 07:41:40 字數 2637 閱讀 6311

#-*- 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 操作 對於 號操作,可變...