配置tkinter小部件的"更好"方法是什么?

Rob*_*and 2 tkinter python-3.x

我现在和tkinter合作过了一段时间.有两种配置方式,至少我只知道两种:

1: frame.config(bg='#123456')

2: frame["bg"] = '#123456'

我经常使用后者.只有同时有更多的事情要做,第二件对我来说才有用.最近我想知道其中一个是否更好'更快'或有任何其他优势.

我不认为这是一个至关重要的问题,但也许有人知道.

Mat*_*hew 5

研究tkinter代码库,我们发现以下内容:

class Frame(Widget):
    # Other code here

class Widget(BaseWidget, Pack, Place, Grid):
    pass

class BaseWidget(Misc):
    # other code here

class Misc:
    # various code
    def __setitem__(self, key, value):
        self.configure({key: value})
Run Code Online (Sandbox Code Playgroud)

因此,这两种方法实际上是等价的.这条线

frame['bg'] = '#123456'
Run Code Online (Sandbox Code Playgroud)

被解释为frame.__setitem__('bg','#123456'),在通过继承链之后发现自己在内部类上Misc,它只是将它传递给configure方法.至于你关于效率的问题,第一种方法可能稍微快一些,因为它不需要解释得那么多,但速度差异太小而不能过分关注.