首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将类变量/对象重置为其初始状态?

如何将类变量/对象重置为其初始状态?
EN

Stack Overflow用户
提问于 2020-01-31 13:59:50
回答 1查看 218关注 0票数 2

我有以下课程:

代码语言:javascript
代码运行次数:0
运行
复制
class SummableSequence(object):
    initials=[]


    def __init__(self, *initial):

        for i in initial:
            self.initials.append(i)


    def __call__(self, i):
        l=self.initials
        new_number = sum(l)
        for j in range(i):
            new_number=sum(l)
            l.append(new_number)
            del l[0]
        return l

当我实例化它时:

代码语言:javascript
代码运行次数:0
运行
复制
new= SummableSequence(0,1)

每次调用它时,我都期望得到相同的输出:

代码语言:javascript
代码运行次数:0
运行
复制
new(5)

输出应该是5,它在第一次运行时运行良好,但是在再次运行时,输出会发生变化。我认为这是因为列表首字母的值没有被重置。如何将该值重置为原始值,而不会在每次打电话时更改它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-31 14:03:46

__call__函数中,您可以创建一个新的副本self.initials并将其存储在l中,然后对其进行操作,以使原始副本不受影响。可以这样做:

代码语言:javascript
代码运行次数:0
运行
复制
l = self.initials.copy()

__call__的第一行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60005352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档