所以我几个月前做过,提出类似的问题,但我似乎无法应用与我之前的问题相同的规则/法律。就像我的名字一样,我对Python的理解非常基础,所以我很困惑为什么他的代码不起作用......
每次我加载一个新的屏幕时,旧的一组框应该消失,新的只有新的框应该留在那里。然而,这不是发生的事情。这是用于演示的图片:
但是我觉得问题可能出在这部分代码中:
def deletePanes(self):
print("delete panes")
Panes = []
self.NoOfPanes = 0
我还在代码的前一部分Panes = []
中调用了class Application():
。问题可能是我两次打电话吗?我的意思是,一个Panes
列表中可能有一个旧框,一个Panes
中有一个新集合,所以当它在PyGame屏幕上绘制时它会画出来新旧包装盒? (如果您查看完整代码,所有这些可能会更有意义)
感谢您提前提供任何帮助。
答案 0 :(得分:2)
致电时
Panes = []
在函数内部,它会创建一个新的局部变量Panes
并将其设置为空列表。
如果是全局变量,则应调用
Panes[:] = []
如果是在课堂上,你应该打电话给
self.Panes = []
答案 1 :(得分:1)
Panes
是一个局部变量,不会更改您对Panes
的其他用途的值。您需要生成Panes
global
或实例变量。在代码中引用Panes