如何正确地将 place、pack 和 grid 方法重新分配为类的一部分?
您需要确保未设置的参数被那些在原始位置、包装和网格方法中默认设置的参数使用。
我的例子(但我不确定它是否正确):
def place(self, x=None, y=None):
self.canvas.place(x=x, y=y)
def pack(self, fill=None, expand=None, side=None, anchor=None, padx=None, pady=None):
self.canvas.pack(fill=fill, expand=expand, side=side, anchor=anchor, padx=padx, pady=pady)
def grid(self, row=None, column=None, columnspan=None, sticky=None, rowspan=None, padx=None, pady=None):
self.canvas.grid(row=row, column=column, columnspan=columnspan, sticky=sticky, rowspan=rowspan, padx=padx, pady=pady)
也许这更好?:
def place(self, *args):
self.canvas.place(*args)
def pack(self, *args):
self.canvas.pack(*args)
def grid(self, *args):
self.canvas.grid(*args)
如果你想将所有方法参数——包括位置的(简单地用逗号列出)和命名的(传递一个参数名称,例如
row=3)——转发到另一个方法调用,你需要接受并传递两者*args,和**kwargs: