Как правильно переназначить методы 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)