对 setter 和 getter 感到困惑

亚伦

我是一个新的 Python 程序员,我最近开始学习 Python 中的 @property 和 @setter 装饰器。但是,我对它们在最简单的脚本中的使用感到困惑,例如:

class Aaron:
    def __init__(self,name):
       self.name = name
    @property
    def name(self):
       return self._name
    @name.setter
    def name(self,new):
        self._name = new

setter 和 getter 的用途是什么?,感谢您的帮助

尼罗

当您想在设置或获取值时执行某些操作时,Setter 和 getter 非常有用,例如验证该值是否有效,或记录访问,或修改另一个值。

例如,如果您有一个Screen类并希望保持 16:9 的纵横比,您可以这样写:

class Screen:
    def __init__(self):
       self._height = 1080
       self._width = 1920

    @property
    def height(self):
       return self._height
    @name.setter
    def height(self,new):
        self._height = new
        self._width = 16*self._height/9

    @property
    def width(self):
       return self._width
    @name.setter
    def width(self,new):
        self._width = new
        self._height = 9*self._width/16

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章