我有一个例子:
self.m = Menu(self.c, tearoff=0)
self.m["bg"] = 'white'
self.m["activebackground"] = 'gray'
如何为函数设置参数,以便我可以通过调用读取def myname():并通过调用更改self.myname["bg"]self.myname["bg"] = 'white'
伪代码:
myname = self.myname()
myname['bg'] = 'gray'
def myname(self, bg):
self.bg = bg
print(self.bg)
__init__.py在tkinter 文件中找到有关 Menu 的信息:
class Menu(Widget):
def __init__(self, master=None, cnf={}, **kw):
Widget.__init__(self, master, 'menu', cnf, kw)
...
def add(self, itemType, cnf={}, **kw):
"""Internal function."""
self.tk.call((self._w, 'add', itemType) +
self._options(cnf, kw))
告诉我字典是如何工作的cnf={}???
发现了别的东西:
class BaseWidget(Misc):
...
def __init__(self, master, widgetName, cnf={}, kw={}, extra=()):
"""Construct a widget with the parent widget MASTER, a name WIDGETNAME
and appropriate options."""
if kw:
cnf = _cnfmerge((cnf, kw))
self.widgetName = widgetName
BaseWidget._setup(self, master, cnf)
if self._tclCommands is None:
self._tclCommands = []
classes = [(k, v) for k, v in cnf.items() if isinstance(k, type)]
for k, v in classes:
del cnf[k]
self.tk.call(
(widgetName, self._w) + extra + self._options(cnf))
for k, v in classes:
k.configure(self, v)
使用类的选项:
结论: