让我们想象。我们有以下2个课程,
class ONE
仅返回class TWO
产生的输出列表。这里的问题是我想在final_issues
返回列表后清除/清空class ONE
列表,以便它不会在第二轮输出重复的条目。
final_issues = []
class ONE:
def out(self):
if final_issues:
return final_issues
###! HERE i want to make `final_issues` empty
class TWO:
def __init__(self):
for i in range(5):
final_issues.append(i)
First Iteration:
TWO()
final_issues
>> [0, 1, 2, 3, 4]
x = ONE()
x.out()
>> [0, 1, 2, 3, 4]
Second Iteration
TWO()
final_issues
>> [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
x = ONE()
x.out()
>> [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
我想在TWO()
类的每次迭代后清除列表,以免将结果附加到先前的final_issues
列表中
请注意:final_issues
在“我的实际问题”中不包含整数(每次都是唯一的值),出于演示目的,我以整数为例。
答案 0 :(得分:3)
您可以执行以下操作,使用final_issues_copy = final_issues[:]
复制列表以稍后返回,然后clear()
创建原始列表(仅适用于Python 3-对于Python 2,您可以使用{{1} }代替del final_issues[:]
)
final_issues.clear()
但是(我理解这只是一个示例,而不是您的实际代码),我通常会警告不要在类之间操纵此类“全局”变量。