欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

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

系統 1609 0

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

重看狗書,看到對User表定義的時候有下面兩行

            
  @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)


          

遂重溫下這個property的使用

在我們定義數據庫字段類的時候,往往需要對其中的類屬性做一些限制,一般用get和set方法來寫,那在python中,我們該怎么做能夠少寫代碼,又能優雅的實現想要的限制,減少錯誤的發生呢,這時候就需要我們的 @property 閃亮登場啦,巴拉巴拉能量……..

用代碼來舉例子更容易理解,比如一個學生成績表定義成這樣

            
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


          

我們調用的時候需要這么調用:

            
>>> 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!


          

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

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


          

看上面代碼可知,把 get 方法變為屬性只需要加上 @property 裝飾器即可,此時 @property 本身又會創建另外一個裝飾器 @score.setter ,負責把 set 方法變成給屬性賦值,這么做完后,我們調用起來既可控又方便

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


          

更多關于Python相關內容可查看本站專題:《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 爱爱视频网站 | 久久久久九九九九 | 国产九色在线 | 国产视频一区二区 | 男女性刺激爽爽免费视频 | 日韩中文在线视频 | 丁香花成人另类小说 | 一级黄色α片 | 美女久草 | 色影影院 | 精品福利视频在线观看视频 | 欧美操操操 | 精品一区久久 | avtom影院 首页亚洲 | 18性夜影院午夜寂寞影院免费 | 国产精品尤物在线观看一区 | 操操日 | 色亚洲视频 | 天天影视免费在线观看入口 | 久青草久青草高清在线播放 | 午夜影院免费 | 欧美wwww | 午夜国产亚洲精品一区 | 国产综合精品 | 奇米色第四色 | 欧美日韩国产综合视频在线看 | xx00视频| 国产欧美亚洲精品a | 不卡国产一区二区三区四区 | 国内精品久久久久久中文字幕 | 久久精品a一级国产免视看成人 | 国产视频高清在线观看 | 黄色片在线免费看 | 黄色国产视频 | 婷婷六月天激情 | 日产国产欧美视频一区精品 | 国产精品.XX视频.XXTV | 99这里只有精品视频 | 午夜小视频在线播放 | 日韩精品视频在线观看免费 | 91精品国产综合久久久久蜜臀 |