当我编写一个类时,我在__init__
方法中声明了一些变量,在其他函数中声明了一些变量。所以,我通常最终得到这样的东西:
class Foo:
def __init__(self,a, b):
self.a=a
self.b=b
def foo1(self,c, d)
sum=self.a+self.b+c+d
foo2(sum)
def foo2(self,sum)
print ("The sum is ", sum)
我发现这种方式有点混乱,因为很难跟踪所有变量。相反,在__init__
方法中声明变量时,管理变量变得更加容易。因此,我们不会使用以前的表单,而是:
class Foo:
def __init__(self,a, b, c, d, sum):
self.a=a
self.b=b
self.c=c
self.d=d
self.sum=sum
def foo1(self)
self.sum=self.a+self.b+self.c+self.d
foo2(self.sum)
def foo2(self)
print ("The sum is ", self.sum)
您会选择哪一个?为什么?您认为在__init__
方法中声明类的所有函数的所有变量是更好的做法吗?
答案 0 :(得分:5)
您的sum
是计算值的良好候选者,即类似于类变量(非方法)的方法。这可以通过@property
class Foo(object):
def __init__(self, a, b):
self.a = a
self.b = b
@property
def sum(self)
return self.a + self.b
f = Foo(1, 2)
print 'The sum is' + f.sum
答案 1 :(得分:4)
至少有三个方面: