В настоящее время у вас есть что-то подобное:
def fl_expand(*args):
print(args)
def frameLayout(name, collapsable, expandCommand):
print("frameLayout: " + name)
expandCommand('foo')
frameLayout("layout1", collapsable=True, expandCommand=fl_expand)
Вам нужно вызвать функцию fl_expand с первым аргументом, уже заполненным именем макета. Для этого вы можете использовать функцию partiel. См. Документацию для functools.partial .
Вы можете попробовать:
import functools
frameLayout("layout1", collapsable=True, expandCommand=functools.partial(fl_expand, "layout1"))
Конечно, это может быть трудоемким, если у вас много таких звонков. Вы также можете определить свою собственную frameLayout функцию:
def myFrameLayout(name, collapsable, expandCommand):
cmd = functools.partial(fl_expand, name)
return frameLayout(name, collapsable, cmd)
myFrameLayout("layout2", collapsable=True, expandCommand=fl_expand)