В Python3 я могу сделать (спасибо pep 3102):
def some_fun(a, *args, log=None, verbose=0):
pass
и будьте уверены, что если я вызову это с помощью:
some_fun(1, 2, 3, lob=debug_log)
Я получаю ошибку типа в неожиданном ключевом аргументе lob
.
В Python2 я не могу определить some_fun()
с аргументами, состоящими только из ключевых слов, после произвольного списка аргументов. Я должен сделать:
def some_fun(a, *args, **kw):
log = kw.get("log", None)
verbose = kw.get("verbose", 0)
все это прекрасно работает при правильном вызове, но я хотел бы получить ошибку типа, как и в случае с Python3, когда я предоставляю один или несколько неправильных аргументов ключевого слова для some_fun()
.