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

时间:2017-08-26 21:30:21

标签: python-3.x tkinter

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

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

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

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

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

1 个答案:

答案 0 :(得分: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})

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

frame['bg'] = '#123456'

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