Why am I getting this exception if I pass lambda instead of a method name to self.onLayoutFinish.append? For testing purposes I just called method in lambda.
self.onLayoutFinish.append(self.randomPosition) # works self.onLayoutFinish.append(lambda: self.randomPosition()) # does not work Trace: File "/usr/lib/enigma2/python/mytest.py", line 327, in open dlg = self.current_dialog = self.instantiateDialog(screen, *arguments, **kwargs) File "/usr/lib/enigma2/python/mytest.py", line 265, in instantiateDialog return self.doInstantiateDialog(screen, arguments, kwargs, self.desktop) File "/usr/lib/enigma2/python/mytest.py", line 294, in doInstantiateDialog dlg.applySkin() File "/usr/lib/enigma2/python/Components/GUISkin.py", line 114, in applySkin File "/usr/lib/enigma2/python/Components/GUISkin.py", line 45, in createGUIScreen TypeError: exec: arg 1 must be a string, file, or code object