filmov
tv
Что такое звездочки * в Python? Префиксные операторы * и **
![preview_player](https://i.ytimg.com/vi/eKPf5qFVjyI/maxresdefault.jpg)
Показать описание
Префиксные операторы * и **
При чтении проектов Python с открытым исходным кодом вам, вероятно, неоднократно встречался следующий стиль определения функции:
def func(*args, **kwargs):
pass
Что означают эти странные звездочки?
При определении Python-функции можно определить параметр, снабженный звездочками, чтобы собрать неограниченное количество аргументов.
Параметр с префиксом * может собрать любое количество позиционных аргументов в tuple.
Параметр с префиксом в виде двойной * может собрать любое количество аргументов ключевых слов в dict.
Кроме того, в некоторых случаях использование звездочек в Python делает код более элегантным.
Например, с помощью звездочек можно производить распаковку итерируемых переменных:
A = [1, 2, 3]
B = (4, 5, 6)
C = {7, 8, 9}
L = [*A, *B, *C]
print(L)
# [1, 2, 3, 4, 5, 6, 8, 9, 7]
При чтении проектов Python с открытым исходным кодом вам, вероятно, неоднократно встречался следующий стиль определения функции:
def func(*args, **kwargs):
pass
Что означают эти странные звездочки?
При определении Python-функции можно определить параметр, снабженный звездочками, чтобы собрать неограниченное количество аргументов.
Параметр с префиксом * может собрать любое количество позиционных аргументов в tuple.
Параметр с префиксом в виде двойной * может собрать любое количество аргументов ключевых слов в dict.
Кроме того, в некоторых случаях использование звездочек в Python делает код более элегантным.
Например, с помощью звездочек можно производить распаковку итерируемых переменных:
A = [1, 2, 3]
B = (4, 5, 6)
C = {7, 8, 9}
L = [*A, *B, *C]
print(L)
# [1, 2, 3, 4, 5, 6, 8, 9, 7]