欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中@property的理解和使用示例

 更新時(shí)間:2019年06月11日 08:38:35   作者:TKtalk  
這篇文章主要介紹了Python中@property的理解和使用,結(jié)合實(shí)例形式分析了Python中@property的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Python中@property的理解和使用。分享給大家供大家參考,具體如下:

重看狗書(shū),看到對(duì)User表定義的時(shí)候有下面兩行

  @property
  def password(self):
    raise AttributeError('password is not a readable attribute')
  @password.setter
  def password(self, password):
    self.password_hash = generate_password_hash(password)

遂重溫下這個(gè)property的使用

在我們定義數(shù)據(jù)庫(kù)字段類的時(shí)候,往往需要對(duì)其中的類屬性做一些限制,一般用get和set方法來(lái)寫,那在python中,我們?cè)撛趺醋瞿軌蛏賹懘a,又能優(yōu)雅的實(shí)現(xiàn)想要的限制,減少錯(cuò)誤的發(fā)生呢,這時(shí)候就需要我們的@property閃亮登場(chǎng)啦,巴拉巴拉能量……..

用代碼來(lái)舉例子更容易理解,比如一個(gè)學(xué)生成績(jī)表定義成這樣

class Student(object):
  def get_score(self):
    return self._score
  def set_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

我們調(diào)用的時(shí)候需要這么調(diào)用:

>>> s = Student()
>>> s.set_score(60) # ok!
>>> s.get_score()
60
>>> s.set_score(9999)
Traceback (most recent call last):
 ...
ValueError: score must between 0 ~ 100!

但是為了方便,節(jié)省時(shí)間,我們不想寫s.set_score(9999)啊,直接寫s.score = 9999不是更快么,加了方法做限制不能讓調(diào)用的時(shí)候變麻煩啊,@property快來(lái)幫忙….

class Student(object):
  @property
  def score(self):
    return self._score
  @score.setter
  def score(self,value):
    if not isinstance(value, int):
      raise ValueError('分?jǐn)?shù)必須是整數(shù)才行吶')
    if value < 0 or value > 100:
      raise ValueError('分?jǐn)?shù)必須0-100之間')
    self._score = value

看上面代碼可知,把get方法變?yōu)閷傩灾恍枰由?code>@property裝飾器即可,此時(shí)@property本身又會(huì)創(chuàng)建另外一個(gè)裝飾器@score.setter,負(fù)責(zé)把set方法變成給屬性賦值,這么做完后,我們調(diào)用起來(lái)既可控又方便

>>> s = Student()
>>> s.score = 60 # OK,實(shí)際轉(zhuǎn)化為s.set_score(60)
>>> s.score # OK,實(shí)際轉(zhuǎn)化為s.get_score()
60
>>> s.score = 9999
Traceback (most recent call last):
 ...
ValueError: score must between 0 ~ 100!

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python實(shí)現(xiàn)excel公式格式化的示例代碼

    python實(shí)現(xiàn)excel公式格式化的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)excel公式格式化的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python Learning 列表的更多操作及示例代碼

    Python Learning 列表的更多操作及示例代碼

    這篇文章主要介紹了Python Learning-列表的更多操作,需要的朋友可以參考下
    2018-08-08
  • Pytorch中使用ImageFolder讀取數(shù)據(jù)集時(shí)忽略特定文件

    Pytorch中使用ImageFolder讀取數(shù)據(jù)集時(shí)忽略特定文件

    這篇文章主要介紹了Pytorch中使用ImageFolder讀取數(shù)據(jù)集時(shí)忽略特定文件,具有一的參考價(jià)值需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2022-03-03
  • Python實(shí)現(xiàn)視頻分解成圖片+圖片合成視頻

    Python實(shí)現(xiàn)視頻分解成圖片+圖片合成視頻

    這篇文章主要介紹了如何利用Python實(shí)現(xiàn)視頻分解成圖片以及將圖片合成為視頻,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-04-04
  • 使用python?xmlrpc連接odoo方式

    使用python?xmlrpc連接odoo方式

    這篇文章主要介紹了使用python?xmlrpc連接odoo方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • python可視化篇之流式數(shù)據(jù)監(jiān)控的實(shí)現(xiàn)

    python可視化篇之流式數(shù)據(jù)監(jiān)控的實(shí)現(xiàn)

    這篇文章主要介紹了python可視化篇之流式數(shù)據(jù)監(jiān)控的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python 中eval()函數(shù)的正確使用及其風(fēng)險(xiǎn)分析(使用示例)

    Python 中eval()函數(shù)的正確使用及其風(fēng)險(xiǎn)分析(使用示例)

    eval()是一個(gè)功能強(qiáng)大的工具,但使用時(shí)必須非常小心,了解其工作原理和潛在的風(fēng)險(xiǎn)是確保安全使用的關(guān)鍵,通過(guò)遵循上述建議,可以在享受eval()帶來(lái)的便利的同時(shí),最大限度地減少安全風(fēng)險(xiǎn),本文介紹Python 中`eval()`函數(shù)的正確使用及其風(fēng)險(xiǎn)分析,感興趣的朋友一起看看吧
    2024-07-07
  • Python yield 的使用淺析

    Python yield 的使用淺析

    這篇文章主要為大家詳細(xì)介紹了Python yield的使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • 粗略分析Python中的內(nèi)存泄漏

    粗略分析Python中的內(nèi)存泄漏

    這篇文章主要介紹了粗略分析Python中的內(nèi)存泄漏,分析了包括在垃圾回收時(shí)產(chǎn)生等的原因,需要的朋友可以參考下
    2015-04-04
  • python 讀寫中文json的實(shí)例詳解

    python 讀寫中文json的實(shí)例詳解

    這篇文章主要介紹了 python 讀寫中文json的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家掌握這樣的內(nèi)容,需要的朋友可以參考下
    2017-10-10

最新評(píng)論