Как правильно переназначить методы place, pack и grid в составе класса?

как правильно переназначить методы place, pack и grid в составе класса?
Нужно сделать так, чтобы параметры которые не заданы применялись те, которые по умолчанию стоят в исходных методах 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)

Ответы (1 шт):

Автор решения: insolor

Если нужно пробросить все аргументы метода - и позиционные (просто перечисляемые через запятую), и именованные (передаваемые с указанием имени аргумента, например row=3) - в вызов другого метода, нужно принять и передать и *args, и **kwargs:

def some_method(self, *args, **kwargs):
    some_object.some_other_method(*args, **kwargs)
→ Ссылка