更新 python class 中的变量

Updating variables in a python class

首先:我在 class 中定义一个更新函数是否重要,或者我是否可以只执行以下操作:

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

其次:创建虚拟变量、执行操作并使用它来更新我的 class 变量是否更有益(节省内存、运行时间等),还是实际上无关紧要?

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

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

我无法回答你的第一个问题,因为我根本不知道你在问什么。我不知道您所说的 "an update function" 是什么意思,也不知道它与您显示的代码有何不同。

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

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