在tkinter中使用self时如何使用*?

时间:2019-09-26 11:16:58

标签: python tkinter

我正在尝试将*self一起使用

这是我的选择代码:

self.choices = glob.glob(os.path.join(self.directory, "*- to sign.jpg"))

这是我的下拉选项菜单代码:

self.popupMenu = OptionMenu(main, self.tkvar, self.*choices, command = func)

当我从两个选项中删除self时,它都可以正常工作。但是使用self无效,这是我的错误:

   self.popupMenu = OptionMenu(main, self.tkvar, self.*choices, command = func)
                                                       ^
SyntaxError: invalid syntax

这是工作代码:

choices = glob.glob(os.path.join(directory, "*- to sign.jpg"))

popupMenu = OptionMenu(main, tkvar, *choices, command = func)

这是我讨厌重写的代码:

self.choices = glob.glob(os.path.join(self.directory, "*- to sign.jpg"))

self.popupMenu = OptionMenu(main, self.tkvar, self.*choices, command = func)
self.popupMenu.grid(row=1, column=0)

为什么显示SyntaxError:语法为self.choices无效?

1 个答案:

答案 0 :(得分:1)

  

为什么显示SyntaxError:无效的语法为self.choices?

因为它是非法语法。 *放在变量名之前,而不是中间。

OptionMenu(main, self.tkvar, *self.choices, command=func)

这称为可重复拆包,在此处记录在其他地方:Expression lists