直接在方法中修改内部对象或从方法返回内容并在外部进行更改是否更好?
例如,此代码在内部进行更改,没有交换不必要的数据:
class A(object):
def __init__(self):
self.val = 0
def increment(self):
self.val = self.val + 1
a = A()
a.increment()
print(a.val)
相比之下,这段代码需要在外部进行更改:
class B(object):
def __init__(self):
self.val = 0
def increment(self, operand):
return operand + 1
b = B()
b.val = b.increment(b.val)
print b.val
如果increment()
仅用于递增* .val,那么第一种方法在风格上是否更好(更加pythonic)?
为了记录,我使用的是python 2.7。
答案 0 :(得分:1)
这实际上取决于您正在考虑的方法。在您显示的示例中,显然最好在方法中分配增量值,原因如下:
val
更改为value
),则使用该类的代码仍然有效为什么第一个例子更好,可能有更多的原因,但也许在另一个例子中,答案会有所不同。但通常,修改对象的变量应该可以从实例方法中完成。