Что означает один * без идентификатора в функциях Python3?

Что означает один * без идентификатора в аргументах функции Python? Вот пример, который работает с Python3.2:

class Shape:
 def __init__(self, *, shapename, **kwds):
 self.shapename = shapename
 super().__init__(**kwds)

Для меня звезда после себя странная.

Я нашел его здесь (из строки 46): http://code.activestate.com/recipes/577720-how-to-use-super-effectively/

1 ответ

Единственный * указывает, что все следующие аргументы являются аргументами только для ключевого слова, то есть они могут быть предоставлены только с использованием их имени, а не как позиционный аргумент.

Подробнее см. PEP 3102.

licensed under cc by-sa 3.0 with attribution.