Python String форматирование для даты и времени

Операторы * и ** используются в двух разных ситуациях.

  1. Когда используется как часть определения функции,
    def save_name_for(self, *args, **kwargs):
    
    используется для обозначения произвольного числа аргументов positional или keyword, соответственно. Следует помнить, что внутри функции args будет кортеж, а kwargs будет dict.
  2. Когда используется как часть вызова функции,
    args = (1, 2)
    kwargs = {'last': 'Doe', 'first': 'John'}
    self.save_name_for(*args, **kwargs)
    
    * и ** действуют как операторы распаковки . args должен быть итерируемым, а kwargs должен быть dict-like. Элементы в args будут распакованы и отправлены функции как позиционные аргументы, а пары ключ / значение в kwargs будут отправлены функции как аргументы ключевого слова. Таким образом,
    self.save_name_for(*args, **kwargs)
    
    эквивалентно
    self.save_name_for(1, 2, last='Doe', first='John')
    

См. Также блог saltycrane для объяснения с примерами.

0
задан Meaner 26 February 2015 в 11:33
поделиться