更新python类中的变量

更新python类中的变量,python,class,class-variables,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):

第一:在类中定义更新函数是否重要,或者是否可以执行以下操作:

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

在这个微不足道的例子中,我知道这无关紧要,但随着函数执行更多操作,它会有任何影响吗?

我无法回答您的第一个问题,因为我完全不知道您在问什么。我不知道你所说的“更新函数”是什么意思,也不知道它与你展示的代码有什么不同

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


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

[link][link](参见第9.6章)这些是我所指的“更新”函数。但你的回答意味着不,我不需要用。Thanks@Michaelbowen但是您没有更新类变量。唯一要变异的变量是实例变量。(
self
是对实例的引用)