Просто добавьте еще одну возможность (с которой я столкнулся) - это может быть так, если вы разрабатываете / поддерживаете Azure WebApp, используя строку соединения, сохраненную в настройках приложения Azure.
Рядом с каждым подключением строка в настройках приложения - это раскрывающийся список для типа строки подключения. Очень легко забыть установить это значение «Пользовательский» для значений платформы Entity Framework и оставить его по умолчанию (SQL Database), что также вызывает указанную выше ошибку.
inspect.getfullargspec(ec2.create_instance)
обычно дает тебе все, что тебе нужно. Совместите args
и defaults
на правой стороне. Например:
def foo(a, b=3, *c, d=5):
m = a + b
return m
argspec = inspect.getfullargspec(ec2.create_instance)
{**dict(zip(argspec.args[-len(argspec.defaults):], argspec.defaults)),
**argspec.kwonlydefaults}
# => {'b': 3, 'd': 5}
Как говорит @ 9769953, если параметр связан в **kwargs
, он обрабатывается кодом функции и, следовательно, не находится в сигнатуре функции.