Загрузка страницы

Что за звери *args и **kwargs

Немного поговорим о распаковке, звездочке *, позиционных и keyword аргументах, спецсимволах, а также о том как все это применять для args и kwargs

1) args и kwargs в параметрах функции - общепринятые имена, но можно использовать и другие
2) *позволяет распаковать iterable/sequence, а ** распакуют словарь
3) если нет никаких спецсимволов, то аргументы функции можно передавать как позиционно, так и keyword (то есть ключ=значение). Важно помнить, что позиционные всегда идут раньше keyword, при этом keyword аргументы между собой не обязаны хранить порядок.
4) спецсимвол / в параметрах функции говорит, что все, что ДО него должно передаваться как позиционные аргументы
5) спецсимвол * (без указания переменной), говорит о том что все, что ПОСЛЕ него должно передаваться как keyword аргумент
6) *args в параметрах функции соберет все позиционные аргументы в кортеж (tuple)
7) **kwargs в параметрах функции соберет все keyword аргументы в словарь (dict)

Почитать:
https://docs.python.org/3/tutorial/controlflow.html?highlight=unpack#more-on-defining-functions

https://docs.python.org/3/whatsnew/3.5.html?highlight=unpack#pep-448-additional-unpacking-generalizations

Важно понабирать эти примеры, поэкспериментировать, понять для себя роль * и **

Видео Что за звери *args и **kwargs канала Python Russian
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
25 февраля 2021 г. 10:43:57
00:38:02
Другие видео канала
Основное оружие питониста: Listcomps и GenexpОсновное оружие питониста: Listcomps и GenexpЧастые ошибки начинающих питонистовЧастые ошибки начинающих питонистовПервый декоратор, разбираемся с написаниемПервый декоратор, разбираемся с написаниемНемного о булинах, True и  FalseНемного о булинах, True и FalseКак правильно начать писать свой проект.Как правильно начать писать свой проект.Лямбды. Не такие и страшныеЛямбды. Не такие и страшныеНемного о встроенных функциях в PythonНемного о встроенных функциях в PythonЧто такое регулярные выражения (регулярки, regexp)Что такое регулярные выражения (регулярки, regexp)Конструкция __MAIN__ для чего и кому нужна.Конструкция __MAIN__ для чего и кому нужна.Учим Python за 1 час! #От ПрофессионалаУчим Python за 1 час! #От ПрофессионалаВсегда проверяй свой код. Простое тестирование с assertВсегда проверяй свой код. Простое тестирование с assertВсе еще не используете аннотации типов? Тогда мы идем к вам!Все еще не используете аннотации типов? Тогда мы идем к вам!Языки программирования: критерии выбораЯзыки программирования: критерии выбораАргументы по умолчанию в функциях.Аргументы по умолчанию в функциях.Работа с Git в PyCharm. Без терминалов и головной боли. Смотреть до конца, жесть.Работа с Git в PyCharm. Без терминалов и головной боли. Смотреть до конца, жесть.Как изучать программирование (PYTHON, но не только)Как изучать программирование (PYTHON, но не только)Простая работа с импортами для новичков. Что такое относительный и абсолютный импорт.Простая работа с импортами для новичков. Что такое относительный и абсолютный импорт.Ф-строки рулят. F-Strings, форматированиеФ-строки рулят. F-Strings, форматированиеУроки Python casts # 3 - Что означает *args, **kwargsУроки Python casts # 3 - Что означает *args, **kwargsКвантовая физика и квантовый компьютер. Научные сенсацииКвантовая физика и квантовый компьютер. Научные сенсации
Яндекс.Метрика