关于python:OOP:getter / setter方法

OOP: getter/setter methods

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
6
7
class test:
    def __init__(self,value):
        self.value = value
    def get_value(self):
        return self.value
    def method(self):
        return some_operation(self.value)

对于为对象实例访问value而定义的get_value(),或者应该在类方法中使用get_value()

1
2
3
4
5
6
7
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())


在Python中,不要使用getter/setter方法。相反,只需访问属性本身,或者,如果每次访问或设置属性时都需要运行代码,请使用属性。


我不会以与我期望的其他对象的方法访问属性不同的方式访问该对象方法中的对象属性。为什么?我不确定,只是看起来很奇怪。

如果您使用属性修饰器(它消除了对getter/setter的需要,如"get_foo"/"set_foo"),python会使这变得非常容易。