Що таке *args та **kwargs в Python

1 хв. читання

**args і **kwargs - це загальні ідіоми, які дозволяють передати у функцію довільне число аргументів.

*args - повертає кортеж всіх переданих функції неіменованих аргументів:

>>> def foo(*args, g):
	print (args)

	
>>> foo(1,2,3,g=6)
(1, 2, 3)

**kwargs повертає словник всіх іменованих аргументів функції, окрім тих, що визначені окремо:

>>> def foo(f, **kwargs):
	print (kwargs)

	
>>> foo(f=1, app=12, gen=23)
{'gen': 23, 'app': 12}

І *args і **kwargs можна використовувати разом в одній функції. Замість args і kwargs можна використовувати будь-які інші назви, також:

>>> def foo(*arguments, **kwarguments):
	print (arguments)
	print (kwarguments)

>>> foo(1,2,3, a=1, b=2,c=3)
(1, 2, 3)
{'b': 2, 'a': 1, 'c': 3}

Використання * синтаксису, також можливе при виклику функції:

>>> def foo(a, b, c):
	print (a,b,c)

	
>>> abc = [1,2,3]
>>> foo(*abc)
1 2 3
>>> 

Ще одну цікаву можливість використання * синтаксису було додано в третю версію Python:

>>> first, *other = [1,2,3,4]
>>> first
1
>>> other
[2, 3, 4]
>>> first, *other, penult, last = [1,2,3,4]
>>> other
[2]
Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.9K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація