Что за звери *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
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
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
![Основное оружие питониста: Listcomps и Genexp](https://i.ytimg.com/vi/vEBhdOxpHJM/default.jpg)
![Частые ошибки начинающих питонистов](https://i.ytimg.com/vi/zQyyjpwk7RY/default.jpg)
![Первый декоратор, разбираемся с написанием](https://i.ytimg.com/vi/q4o_1cXAS-c/default.jpg)
![Немного о булинах, True и False](https://i.ytimg.com/vi/ayz_vdlnx30/default.jpg)
![Как правильно начать писать свой проект.](https://i.ytimg.com/vi/DZCbkU8UMtA/default.jpg)
![Лямбды. Не такие и страшные](https://i.ytimg.com/vi/xlZskAj8_vM/default.jpg)
![Немного о встроенных функциях в Python](https://i.ytimg.com/vi/CbZS9FPBX5E/default.jpg)
![Что такое регулярные выражения (регулярки, regexp)](https://i.ytimg.com/vi/f-FJHEMUN_M/default.jpg)
![Конструкция __MAIN__ для чего и кому нужна.](https://i.ytimg.com/vi/RG8dobvf6kE/default.jpg)
![Учим Python за 1 час! #От Профессионала](https://i.ytimg.com/vi/fp5-XQFr_nk/default.jpg)
![Всегда проверяй свой код. Простое тестирование с assert](https://i.ytimg.com/vi/Z3UmS3YlODk/default.jpg)
![Все еще не используете аннотации типов? Тогда мы идем к вам!](https://i.ytimg.com/vi/XuYZwhIvR5w/default.jpg)
![Языки программирования: критерии выбора](https://i.ytimg.com/vi/T70qJndjYi0/default.jpg)
![Аргументы по умолчанию в функциях.](https://i.ytimg.com/vi/cWALJKgkIOU/default.jpg)
![Работа с Git в PyCharm. Без терминалов и головной боли. Смотреть до конца, жесть.](https://i.ytimg.com/vi/9VKKZNqzPcE/default.jpg)
![Как изучать программирование (PYTHON, но не только)](https://i.ytimg.com/vi/lMZn1Kj2RfE/default.jpg)
![Простая работа с импортами для новичков. Что такое относительный и абсолютный импорт.](https://i.ytimg.com/vi/D8WSSiTbLl0/default.jpg)
![Ф-строки рулят. F-Strings, форматирование](https://i.ytimg.com/vi/vbZTVaulTdk/default.jpg)
![Уроки Python casts # 3 - Что означает *args, **kwargs](https://i.ytimg.com/vi/VJJ9wwzgJCA/default.jpg)
![Квантовая физика и квантовый компьютер. Научные сенсации](https://i.ytimg.com/vi/4CMRa6A_JNs/default.jpg)