PYTHON中的错误位置参数跟随关键字参数

时间:2019-09-13 19:21:48

标签: python tkinter

我尝试使用tkinter在python中使用许多命令创建按钮,但是当我尝试编译时,它们给我一个错误:

  

位置参数跟在关键字参数之后

    c = Button(WPEngine ,text="Start", command=doStuff, command=callback, command=start)
    c.grid(row=1,column=1)

2 个答案:

答案 0 :(得分:1)

您收到的错误:

  

位置参数跟在关键字参数之后

但是该错误与重复的关键字参数无关。 我本来希望看到此错误:

  

SyntaxError:关键字参数重复

因此,我怀疑您的代码中还有其他问题,但是我们需要查看更多代码来确定根本原因。

除了调用多个命令外,您还可以执行以下2种方法之一。

第一种方法只是调用一个函数,然后调用其他几个函数。

代码示例

from tkinter import *


def do_stuff():
    print('doStuff')


def callback():
    print('callback')


def start():
    print('start')


def do_multiple_things():
    do_stuff()
    callback()
    start()


root = Tk()

c = Button(root, text="Start", command=(do_stuff, callback))
c.grid(row=1, column=1)

root.mainloop()

第二种方法是使用lambda调用列表/元组中的多个函数。

代码示例

from tkinter import *


def do_stuff():
    print('doStuff')


def callback():
    print('callback')


def start():
    print('start')


root = Tk()

c = Button(root, text="Start", command=lambda: (do_stuff(), callback(), start()))
c.grid(row=1, column=1)

root.mainloop()

答案 1 :(得分:0)

    c = Button(WPEngine ,text="Start", command=doStuff, command=callback, command=start)

您正在将多个command参数传递给Button构造函数。 要解决此问题,请确定您要传入command参数。