【问题标题】:Updating variables in a python class [closed]更新python类中的变量[关闭]
【发布时间】:2018-01-26 00:19:13
【问题描述】:

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

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

在这个微不足道的例子中,我知道没关系,但是随着函数执行更多的操作,它会有什么效果吗?

【问题讨论】:

    标签: python class class-variables


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    相关资源
    最近更新 更多