OOP:getter / setter方法

时间:2011-11-28 14:59:32

标签: python oop

所以我读过你应该通过getter / setter方法访问对象属性,比如object.get_this()object.set_that(value)。此代码是否适用于在类中定义的方法?或者它们仅用于对象实例。例如,这样做是不恰当的,

class test:
    def __init__(self,value):
        self.value = value
    def get_value(self):
        return self.value
    def method(self):
        return some_operation(self.value)

定义了get_value()来访问对象实例的value,还是应该在类方法中使用get_value()

class test:
    def __init__(self,value):
        self.value = value
    def get_value(self):
        return self.value
    def method(self):
        return some_operation(self.get_value())

2 个答案:

答案 0 :(得分:48)

在python do not use getter/setter methods中。而只是访问属性本身,或者,如果您需要在每次访问或设置属性时运行代码,请使用properties

答案 1 :(得分:2)

我不会通过与我希望其他对象访问它们的方法不同的方式访问所述对象的方法中的对象的属性。为什么?我不确定,这看起来很奇怪。

如果你使用properties decorator来消除对名为“get_foo”/“set_foo”的getter / setter的需要,那么Python会非常简单。