修改属性的首选方式

preferred way to modify attributes

我在 class 中使用辅助方法来修改属性,并且可以看到几种方法来执行此操作。以下任何 helper 和相关 methods 是否有充分的理由被首选或避免?

class Test(object):

    def __init__(self, x, y):
        self.x = x
        self.y = y

    def _x_helper1(self):
        self.x += self.y

    def method1(self):
        # some other code...
        self._x_helper1()

    def _x_helper2(self, y):
        # some other code...
        self.x += y

    def method2(self):
        # some other code...
        self._x_helper2(self.y)

    def _x_helper3(self, y):
        # some other code...
        return y

    def method3(self):
        # some other code...
        self.x += self._x_helper3(self.y)

这个例子太抽象了。

添加 obj.x + obj.y 没有错。如果你需要改变对象的状态,并且你只根据属性改变,使用

def mutate(self):
    self.x += self.y