python:直接在对象上改变状态

时间:2019-05-09 21:12:27

标签: python class object coding-style

我有一个对象,该对象具有要更改的属性(foo,bar,baz)。我想知道直接在对象上改变属性状态的最佳实践是什么。我在下面概述了三个选项,并想知道围绕这种类型的设置是否有最佳实践。还是我想得太多?

class A:

    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

    ...

    def so_something(self):
        # Option 1 - directly access a,b,c on self and modify in place
        self.mutate_args()

        # Option 2 - pass in a,b,c and update them on self
        self.mutate_args(self.a, self.b, self.c)

        # Option 3 - pass in a,b,c, return the mutated values and save to the object. 
        self.a, self.b, self.c = self.mutate_args(
            self.a, self.b, self.c)

任何想法都值得赞赏。

0 个答案:

没有答案