Именованные аргументы функции (перенос между модулями)

Indi

Новичок
Пользователь
Окт 12, 2021
3
0
1
Доброго времени.
В программе имеются 2 модуля (исполняемый и модуль с набором функций).
В модуле с набором функций имеется функция:

Python:
def findTemplate(*args, area='all', **kwargs):
    try:
        adb, version, width, height, template, threshold = args
    except:
        return

В наборе аргументов имеется аргумент с именем area.

Перенос данной функции в другой модуль программы осуществляется строкой:
Python:
find = lambda *args, **kwargs: action.findTemplate(
        adb, version, width, height, *args
    )

Вызов данной функции осуществляется строкой вида:
Python:
find("данные", 1, area=(91, 350, 173, 380))

Загвоздка состоит вот в чем: именованный аргумент всегда принимает значение по умолчанию, даже если при вызове функции он прописан.
Подскажите - где допущена ошибка и как ее исправить?
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Подскажите - где допущена ошибка и как ее исправить?
В этой строке при вызове функции action.findTemplate в нее не передаются именованные аргументы:
Python:
find = lambda *args, **kwargs: action.findTemplate(
        adb, version, width, height, *args
    )
чтобы исправить попробуйте их передать
Python:
find = lambda *args, **kwargs: action.findTemplate(
        adb, version, width, height, *args, **kwargs
    )
 

Indi

Новичок
Пользователь
Окт 12, 2021
3
0
1
В этой строке при вызове функции action.findTemplate в нее не передаются именованные аргументы:
Python:
find = lambda *args, **kwargs: action.findTemplate(
        adb, version, width, height, *args
    )
чтобы исправить попробуйте их передать
Python:
find = lambda *args, **kwargs: action.findTemplate(
        adb, version, width, height, *args, **kwargs
    )

Благодарю за помощь. Вопрос решен, аргумент теперь передается в нужную функцию.
 

Форум IT Специалистов