Рубрики
Без рубрики

Python ** Kwargs.

Автор оригинала: Python Examples.

Python ** kwargs Позволяет вызов функции передавать переменное количество к эй W Орд (назван) arg к функции.

Детатип Kwargs – словарь. Итак, ключевые слова и соответствующие значения аргументов приходят в качестве ключа: значение пар. Количество ключа: пары значений в KWarg определяются только на вызове функций во время выполнения.

Двойная звездочка ** До кваргов – это оператор распаковки. Это распаковывает аргументы, переданные функции, как словарь.

В этом руководстве мы узнаем, как использовать ** kwargs в определении функции, чтобы принять любое количество именованных аргументов функции.

Пример: Python ** Kwargs

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

Python Program

def myFunction(**kwargs):
    for kw in kwargs:
        print(kw, '-', kwargs[kw])

if __name__ == "__main__":
    myFunction(a = 24, b = 87, c = 3, d = 46)

Выход

a - 24
b - 87
c - 3
d - 46

Мы называем myфункцию () с четырьмя именованными аргументами, а именно A, B, C и D.

В определении MIFunction () мы использовали параметр Kwargs с ** оператором распаковки, чтобы принять любое количество именованных аргументов.

В первом именованном аргументе , A – это ключевое слово и 24 – это значение аргумента. Следовательно, a идет как ключ и 24 идет как значение. В функции, A и 24 могут быть доступны в качестве ключа: значение пара из словаря кварг. То же объяснение проводит оставшиеся именованные аргументы, переданные функции.

Kwargs – это имя параметра

Kwargs – это просто имя, которое мы дали параметру, которое может принять любое количество именованных аргументов. Вы можете использовать любое имя вместо Kwargs, это соответствует вашему требованию.

В следующем примере программа мы будем использовать другое имя, скажем, Компьютеры вместо Kwargs для аргументов ключевых слов в Myфункция () Определение функции.

Python Program

def myFunction(**computers):
    for kw in computers:
        print(kw, '-', computers[kw])

if __name__ == "__main__":
    myFunction(dell = 1299.50, asus = 1870.00, hp = 1990.50)

Выход

dell - 1299.5
asus - 1870.0
hp - 1990.5

kwargs – словарь

Мы уже узнали, что DataType Kwargs – это словарь. Итак, вы можете использовать все методы словаря на кварге.

Например, мы будем использовать метод Dict.Items (), чтобы повторять ключи и значения одновременно.

Python Program

def myFunction(**kwargs):
    for key, value in kwargs.items():
        print(key, '-', value)

if __name__ == "__main__":
    myFunction(a = 24, b = 87, c = 3, d = 46)

Выход

a - 24
b - 87
c - 3
d - 46

** Kwargs с другими параметрами

Просто функция может иметь несколько параметров в его определении, мы также можем иметь параметры вместе с ** кварг. Пожалуйста, помните, что ** Kwargs – это просто еще один параметр. Единственное отличие ** Kwargs из других параметров состоит в том, что она может принять несколько названных аргументов.

В следующем примере мы определим функцию myфункцию (), с параметрами x, y и ** kwargs.

Python Program

def myFunction(x, y, **kwargs):
    print(x)
    print(y)
    for key, value in kwargs.items():
        print(key, '-', value)

if __name__ == "__main__":
    myFunction("ABC", "MNO", a = 24, b = 87, c = 3, d = 46)

Выход

ABC
MNO
a - 24
b - 87
c - 3
d - 46

** kwargs с * args

Пока ** kwargs могут принять любое количество названных аргументов, Python * args может принять любое количество позиционных аргументов.

Вы можете использовать * args и ** Kwargs в определении функции, чтобы принять как позиционные аргументы, так и названные аргументы, количество которых неизвестно.

В следующем примере мы определим функцию с помощью как * Args, так и ** кварг.

Python Program

def myFunction(*args, **kwargs):
    print(args)
    print(kwargs)

if __name__ == "__main__":
    myFunction("hello", "mars", a = 24, b = 87, c = 3, d = 46)

Выход

('hello', 'mars')
{'a': 24, 'b': 87, 'c': 3, 'd': 46}

Просто чтобы напомнить, DataType of Args – кортеж, а DataType Kwargs – словарь.

Резюме

В этом руководстве примеров Python мы узнали, как использовать ** Kwargs, чтобы принять любое количество именованных аргументов в функции.