更新python类中的变量

时间:2018-01-26 00:19:13

标签: python class class-variables

首先:如果我在类中定义更新函数或者我可以执行以下操作是否重要:

class foo(object):
    def __init__(self):
        self.a = 1
    def f(self,):
        self.a = self.a**2 - self.a - 6
        return self.a

第二:创建虚拟变量,执行操作并使用它来更新我的类变量更有益(节省内存,运行时等),还是实际上并不重要?

class foo(object):
    def __init__(self):
        self.a = 1

    def f(self):
        a = self.a
        a = a**2-a-6
        self.a = a
        return self.a

在这个简单的例子中,我知道这没关系,但是当函数执行更多操作时,它会产生什么影响吗?

1 个答案:

答案 0 :(得分:1)

我无法回答你的第一个问题,因为我完全不知道你在问什么。我不知道“更新功能”是什么意思,或者它与你展示的代码有什么不同。

然而,对于您的第二个,使用局部变量比使用属性稍快。在大多数情况下它并不重要,但如果你有一些代码需要尽可能快,你可以采取将属性值移动到局部变量的方法,在那里处理它,然后把它放回去在属性中。

正如Knuth所说,过早优化是所有邪恶的根源,所以在确定此代码导致真正的性能问题之前不要这样做。