@ property如何在Python中使用

  介绍

这篇文章给大家介绍@ property如何在Python中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

class 学生(对象):      def 才能get_score(自我):   ,,,return  self._score      def 才能;set_score(自我,,值):   ,,,if  not  isinstance (int值,,):   ,,,,,raise  ValueError (& # 39; score  must  be  an 整数! & # 39;)   ,,,if  value  & lt;, 0,趁机value 祝辞,100:   ,,,,,raise  ValueError (& # 39; score  must 结构;0,~,100 ! & # 39;)   ,,,self._score =,价值

我们调用的时候需要这么调用:

在祝辞祝辞,s =,学生()   在祝辞祝辞,s.set_score (60), #, ok !   在祝辞祝辞,s.get_score ()   60   在祝辞祝辞,s.set_score (9999)   Traceback  (most  recent  call 最后一个):   ,……   ValueError: score  must 结构;0,~,100 !

但是为了方便,节省时间,我们不想写s.set_score(9999)啊,直接写。9999分=不是更快么,加了方法做限制不能让调用的时候变麻烦啊,@ property快来帮忙…。

 class 学生(对象):
  
  ,@ property
  def 才能得分(自我):
  ,,,return  self._score
  
  @score.setter  #才能@score.setter是前一个@ property装饰后的副产品。
  def 才能得分(自我价值):
  ,,,if  not  isinstance (int值,,):
  ,,,,,raise  ValueError(& # 39;分数必须是整数才行呐& # 39;)
  ,,,if  value  & lt;, 0,趁机value 祝辞,100:
  ,,,,,raise  ValueError(& # 39;分数必须0 - 100之间& # 39;)
  ,,,self._score =, 

看价值上面代码可知,把得到的方法变为属性只需要加上@ property装饰器即可,此时@ property本身又会创建另外一个装饰器@score。setter,负责把集方法变成给属性赋值,这么做完后,我们调用起来既可控又方便

在祝辞祝辞,s =,学生()   在祝辞祝辞,s.score =, 60, #,好的,实际转化为s.set_score (60)   在祝辞祝辞,s.score  #,好的,实际转化为s.get_score ()   60   在祝辞祝辞s.score =, 9999   Traceback  (most  recent  call 最后一个):   ,……   ValueError: score  must 结构;0,~,100 !

关于@ property如何在Python中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

@ property如何在Python中使用