我现在和tkinter合作过了一段时间。 有两种配置方式,至少我只知道两种:
1:frame.config(bg='#123456')
2:frame["bg"] = '#123456'
我经常使用后者。只有同时有更多的事情要做,第二件对我来说才有用。 最近我想知道其中一个是否更好'喜欢更快或有任何其他优势。
我认为这不是一个至关重要的问题,但也许有人知道。
答案 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方法。至于你关于效率的问题,第一种方法可能稍快一点,因为它不需要解释得那么多,但速度差异太小而不能过分关注。