def _procedural_reloading(self,gen=[],*args):
if len(gen):
gen.pop().reload()
Clock.schedule_interval(functools.partial(
self._procedural_reloading,gen=gen),.5)
在上面的代码中,_procedural_reloading() 是一个类的方法,它获取一个包含一些图像的列表,并尝试一个一个地重新加载()它们。你猜怎么着,它不起作用,因为它说 _procedural_reloading 为关键字 gen 获得了多个值!
奇怪的是,如果我将 gen 作为参数(而不是关键字参数)传递,它就可以正常工作,在这里:
def _procedural_reloading(self,gen=[],*args):
if len(gen):
gen.pop().reload()
Clock.schedule_interval(functools.partial(
self._procedural_reloading,gen),.5)
为什么 gen=gen 不起作用?
更详细地说,到目前为止,我什至一次都无法使用 Clock 传递任何关键字参数!我总是必须按顺序一个一个地排列参数并传递它们......这是一个已知问题吗?还是我在那里做错了什么?我觉得我好笨!
编辑:
没有默认值的 gen在我的情况下也不起作用:
def _procedural_reloading(self,gen,*args):
if len(gen):
gen.pop().reload()
Clock.schedule_interval(functools.partial(
self._procedural_reloading,gen=gen),.5)