Обложка канала

Библиотека Python разработчика

20835 @BookPython

Библиотека Python разработчика. Книги по программированию на Python.

Библиотека Python разработчика

4 года назад
Открыть в
Python 3 allows you to make some function arguments keyword-only, meaning they must be passed as (arg=value) rather than just (value). It may be useful to prevent function calls like this: grep(text, pattern, True, False, True), where True, False, True actually means ignore case, don't invert match, pattern is Perl regexp. It would be nice to force the only reasonable form of this call: grep(text, pattern, ignore_case=True, perl_regexp=True) To achieve this result you should place the keyword-only arguments after varargs argument (aka *args): def grep( text, pattern, *args, ignore_case=False, invert_match=False, perl_regexp=False, ): pass If you don't need *args (like in the example), just replace it with a bare asterisk: def grep( text, pattern, *, ignore_case=False, invert_match=False, perl_regexp=False, ): pass