介绍
这篇文章给大家介绍@ 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中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。