«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как одинокие и двойные звездочки (*) распаковывают аргументы в функциях Python?

Как одинокие и двойные звездочки (*) распаковывают аргументы в функциях Python?

Опубликовано в 2025-02-26
Просматривать:581

How Do Single and Double Asterisks (*) Unpack Arguments in Python Functions?

распаковка аргументов в Python с и (double Star/asterisk) *

в Python, ] и * Операторы играют важные роли в распаковке аргументов при вызове functions.

Single Star *:
единственная звезда ( *) распаковывает последовательность или коллекцию в позиционные аргументы. Например, рассмотрим функцию:

]
def add(a, b):
    return a   b

Код ниже используется * для распаковки значений Tuple:

values = (1, 2)
s = add(*values)

это эквивалентно записи:

s = add(1, 2)

double Star **: ]
Double Star (**) выполняет аналогичную операцию для словарей, обеспечивая значения для названных аргументов. Рассмотрим функцию:

def sum(a, b, c, d):
    return a   b   c   d

Распаковка значений словаря2, используя **, дает следующее:

values2 = { 'c': 10, 'd': 15 }
s = add(**values2)

это эквивалентно:

s = sum(a=1, b=2, c=10, d=15)

комбинация и : * оба
и * можно использовать одновременно в тот же функциональный вызов. Например:

values1 = (1, 2) значения2 = {'c': 10, 'd': 15} s = add (*values1, ** values2)
values1 = (1, 2)
values2 = { 'c': 10, 'd': 15 }
s = add(*values1, **values2)
это эквивалентно:

s = sum (1, 2, c = 10, d = 15)
values1 = (1, 2)
values2 = { 'c': 10, 'd': 15 }
s = add(*values1, **values2)
]

параметр Распаковка: ] В дополнение к распаковке аргументов,
и * также можно использовать для распаковки параметров в определениях функции.

    ] параметр, помеченный *, получает любое количество позиционных аргументов в качестве Tuple.
  • параметр, отмеченный **, получает все аргументы ключевых слов в качестве словаря. ]
  • , например:

def add (*values): # ... def get_a (** значения): # ...

values1 = (1, 2)
values2 = { 'c': 10, 'd': 15 }
s = add(*values1, **values2)
последствия для производительности:

последствия для использования и
*, как правило, минимальны. Операция распаковки включает в себя минимальные накладные расходы и не влияет на эффективность самой функции. Тем не менее, чрезмерная распаковка может сделать код менее читаемым и поддерживаемым. ]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3