从Python中的函数列表中删除函数时出错
我正在使用pygame模块用python编写一个小游戏 我有两个函数列表: afunc(在每帧循环的开始处运行) bfunc(每帧在循环结束时运行) 这是从列表中删除函数的代码,但这似乎不起作用。没有错误,所以我不能指出确切的问题 这是向列表中添加新函数的函数:从Python中的函数列表中删除函数时出错,python,Python,我正在使用pygame模块用python编写一个小游戏 我有两个函数列表: afunc(在每帧循环的开始处运行) bfunc(每帧在循环结束时运行) 这是从列表中删除函数的代码,但这似乎不起作用。没有错误,所以我不能指出确切的问题 这是向列表中添加新函数的函数: def addfunction(function , arg = None , position = 'b'): ''' add a function which runs every frame. argu
def addfunction(function , arg = None , position = 'b'):
'''
add a function which runs every frame. argument 'a' will run the
function after everything, argument 'b' will run the function
before anything is updated. These functions will run independent of
which screen is being displayed i=unless explicitly stated in the code
'''
if position == 'b':
self.bfuncs.append((function , arg))
else:
self.afuncs.append((function, arg))
这是一个自行生成的示例,但不起作用
addfunction(print,'hi') ##adding function
removefunction(print) ##removing function
这可能是您的问题,也可能不是您的问题,但您可以使用
self.afuncs.append((function, arg))
并使用查找要删除它们的索引
self.afuncs.index([function, arg])
但是,(函数,arg)!=[function,arg]
,因此对索引的调用将引发异常,该异常被except:pass
行屏蔽
在旁注中,不要使用,除非:pass
。曾经这只是一个等待发生的错误 “没有错误,因此我无法指出确切的问题。”-然后创建一个完整的示例来演示问题,包括创建带有函数的列表的代码。请提供某种错误、回溯和/或wen可以单独测试的内容。删除try将会出现。@ayushjha:这些似乎是方法(您在代码中引用的是self
,但这两种方法都没有将self
作为参数。而且由于您的except:pass
到处都是异常。除了:pass
是邪恶的,不要使用它。至少将Exception用作e:print“catch{}!”。格式(e)
。这样您就知道什么时候会发生异常。如果在某些地方预期会发生异常,则只捕获您预期会引发的特定类型的异常。
self.afuncs.index([function, arg])