Python 2.7.13 PyQt5
我正在动态创建/删除我添加到Pyqt中的菜单栏中的变量。 我试图使用lambda发送一个参数
exec(a[0] + 'btn' + '.triggered.connect(lambda : self.on_click_fav_list(a[0]))')
我收到此错误
File "<string>", line 1, in <lambda>
NameError: global name 'self' is not defined
为什么不承认这一切都发生在课堂上?我的逻辑中是否缺少某些东西?
答案 0 :(得分:0)
所以我可能发布得太快了。这是我使用functools.partial函数找到的解决方案
from functools import partial
exec(a[0] + 'btn' + '.triggered.connect(partial(self.on_click_fav_list, a[0]))')
我仍然不确定lambda为什么会出现这个错误但是这个函数按预期运行