Python入門 使用 property

2021-09-11 06:22:21 字數 1085 閱讀 5156

有沒有既能夠檢查引數,又可以用類似屬性這樣簡單的方式來訪問類的變數呢?

有!對於類的方法,裝飾器一樣起作用!python內建的@property裝飾器就是負責把乙個方法變成屬性呼叫的:

還記得裝飾器(decorator)可以給函式動態加上功能嗎?對於類的方法,裝飾器一樣起作用。python內建的@property裝飾器就是負責把乙個方法變成屬性呼叫的:

class student(object):

@property

def score(self):

return self._score

@score.setter

def score(self, value):

if not isinstance(value, int):

raise valueerror('score must be an integer!')

if value < 0 or value > 100:

raise valueerror('score must between 0 ~ 100!')

self._score = value

還可以定義唯讀屬性,只定義getter方法,不定義setter方法就是乙個唯讀屬性:

class student(object):

@property

def birth(self):

return self._birth

@birth.setter

def birth(self, value):

self._birth = value

@property

def age(self):

return 2015 - self._birth

上面的birth是可讀寫屬性,而age就是乙個唯讀屬性,因為age可以根據birth和當前時間計算出來。

特別注意的一點:在類中呼叫屬性時,應當使用self._birth的格式,而不是self.birth

Vue中的計算屬性使用,動態賦值property

在使用vue時候,可能會發現乙個問題 我們不想在data中給某個property賦上固定的預設值,而是想賦值一些經過計算的property值,甚至使用到了其他property,第一時間可能會想到這麼寫,如下 錯誤示例 selectphotolabel this photolabels 0 text?...

Python入門 迭代的使用

對乙個集合,無論有無序,還可以依次取出集合的每乙個元素 集合 型別有序 list stuple str unicode 無序set 無序並且具有key value dict 迭代在python中,可以說就是for迴圈,但是迭代又與一般的下標訪問陣列不同,前者只關心迭代結果,不關心內部的實現 可取得索...

google 一 python使用入門

google 一 python使用入門 我在google申請了帳號,呵呵,想試試在那裡發布我新寫的簡單python應用。首先學習google的python入門文件 解開壓縮檔案,開啟裡面的readme,參考該文件安裝環境,我的作業系統是ubuntu9.10 解開壓縮後,將資料夾拷貝到工作目錄 1.撰...