Что означает звезда * в объявлении функции?
что значит *
среднее значение в следующем коде (найдено в pprint
библиотека)?
def pformat(object, indent=1, width=80, depth=None, *, compact=False):
"""Format a Python object into a pretty-printed representation."""
return PrettyPrinter(indent=indent, width=width, depth=depth,
compact=compact).pformat(object)
если бы это было *args
тогда это будет произвольное количество позиционных параметров. Значения параметров будут в кортеж под названием args
. Первые 4 параметра могут быть назначены либо по имени, либо по должности, параметр compact
может быть назначен только по имени...
Ну, нет! Потому что это не согласуется с в документация:
в вызове функции аргументы ключевых слов должны следовать позиционным аргументы.
Итак, что делает звезда после и до других именованных аргументов? И как это используется? Или почему он там, если он не используется?
1 ответов
Он отделяет позиционные аргументы от ключевое слово-только аргументы когда нет аргументов переменной. Это питон-3-единственная особенность.