使用property装饰器达到setter/getter效果

曾在java使用中比较常见到getter以及setter方法,而在python中这个却不常见到,最近见到了一种比较pythonic的写法,是使用property装饰器来实现getter以及setter的效果。

示例

# -*- coding: utf-8 -*-

class Student(object):
    
    @ property
    def score(self):
        return self._score

    @score.setter
    def score(self, value):
        self._score = value


if __name__ == "__main__":
    s = Student()
    s.score = 4
    print s.score
    s.score = 5
    print s.score

当然,你可以使用property来实现只读属性。