Python:从 ttk.Frame 继承时不能使用关键字参数

Python: Cannot Use Keyword Arguments when Inheriting from ttk.Frame

我正在尝试创建 ttk.Frame 对象的子class,但我注意到我无法将关键字参数传递到其父级的 init 方法中。这是我的 class:

的精简版
from tkinter import ttk

class MyFrame(ttk.Frame):
    def __init__(self, parent, **kwargs):                    
        super(MyFrame, self).__init__(parent, kwargs)

这是一个尝试创建我的 class 实例的示例(root 已分配给 tkinter.Tk()):

my_frame = MyFrame(root, borderwidth=5)

这是我尝试创建 class:

实例时的错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\csmith\Documents\tmp\frame_test.py", line 5, in __init__
ttk.Frame.__init__(self, parent, kwargs)
TypeError: __init__() takes from 1 to 2 positional arguments but 3 were given

我知道可以在使用关键字参数的同时创建 Frame 对象,但我似乎无法弄清楚为什么我不能创建一个 class 来将它的关键字参数传递给 Frame 的 init 方法。任何建议表示赞赏!

kwargs 传递给函数时,请改用 **kwargs。这意味着 'unpack as kwargs',因为您必须将所有 kwargs 一个一个地放入。 'Unpack' 意味着 Python 会为你做那件事。

改变

super(MyFrame, self).__init__(parent, kwargs)

super(MyFrame, self).__init__(parent, **kwargs)