日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:關(guān)于pythonproperty用法操作詳解

最近小編一直在看有關(guān)python從基礎到常見的各類方法與函數(shù),然后碰到有關(guān)property的使用,于是自己整理了一番,有需要的小伙伴可以來看下啦~

property語法

property(fget=None, fset=None, fdel=None, doc=None)

fget是一個獲取屬性值的函數(shù),fset是一個設置屬性值的函數(shù),fdel是一個刪除屬性的函數(shù),doc是一個字符串(類似于注釋)

class Student:
 def __init__(self,score):
 self._score = score
 def get_score(self):
 return self._score
 
 def set_score(self,value):
 self._score = value
 
 score = property(get_score,set_score)

也可以使用另外一種方法:通過裝飾器的形式

@property裝飾器就是負責把一個方法變成屬性調(diào)用,通常用在屬性的get方法和set方法,通過設置@property可以實現(xiàn)實例成員變量的直接訪問,又保留了參數(shù)的檢查。另外通過設置get方法而不定義set方法可以實現(xiàn)成員變量的只讀屬性。

 把一個getter方法變成屬性,只需要加上@property就可以了,此時,@property本身又創(chuàng)建了另一個裝飾器@score.setter,把一個setter方法變成屬性賦值,于是,我們就擁有一個可控的屬性操作,

實際操作中,使用裝飾器的方式更加方便簡潔,所有推薦使用這種方式

class Student(object):
 def __init__(self,score):
 self._score = score
 @property
 def score(self):
 return self._score
 @score.setter
 def score(self, value):
 self._score = value

可以直接以調(diào)用屬性的方式調(diào)用方法

s = Student()
s.score #獲取score屬性值
s.score = 88 #設置屬性score的值為88

為什么property具有如此的魔力?

property是一種描述符,被@property修飾的成員函數(shù),將變?yōu)橐粋€描述符。

class Foo:
 @property
 def get_x(self):
 print('getting value')
 return 'x_value'
 def get_y(self):
 pass
 foo=Foo()
 
type(Foo.get_x)
type(Foo.get_y)

為什么使用property,我們通過函數(shù)也可以啊?這有什么用呢?

最常見的,在web開發(fā)時,設置用戶模型,需要對用戶設定的密碼進行加密處理,都會用到property。

希望大家可以熟練掌握property,有助于代碼編程哦~如需了解更多python實用知識,點擊進入PyThon學習網(wǎng)教學中心。


當前名稱:創(chuàng)新互聯(lián)Python教程:關(guān)于pythonproperty用法操作詳解
新聞來源:http://m.5511xx.com/article/copjegs.html