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

Python Double Asterisk (**)

Резюме: Double Asterisk Оператор имеет следующее использование: A ** B – Exponentiation.def f (** kwargs) – распаковка: Определение произвольного количества ключевых слов аргументов.f (** D) – словарь распаковки. D1, ** D2) – Слияние словарей. При использовании функции в вашей программе вы можете не уверены в количестве названных аргументов, которые должны быть переданы в функцию. Цель … Python Double Asterisk (**) Подробнее »

Автор оригинала: Shubham Sayon.

Резюме: Оператор Double Asterisk имеет следующее использование:

  • A ** BЭкспонирование Отказ
  • def f (** kwargs)Распаковка: Определение произвольного количества аргументов ключевых слов.
  • F (** D)Словарь Распаковывать Отказ
  • F (** D1, ** D2)Слияния слияния Отказ

При использовании функции в вашей программе вы можете не уверены в количестве названных аргументов, которые должны быть переданы в функцию. Цель этой статьи заключается в руководстве и поможет вам справиться с такими ситуациями. Давайте погрузимся в дискуссию на двойной оператор звездочки в Питоне сразу.

Использование двойной звездочки (**) в Python

** может иметь разные значения в разных сценариях. Это приводит нас к вопросу, Когда Используйте ** Оператор в Python?

Есть разные ответы на этот вопрос. Давайте обсудим их один за другим.

❖ Используется как оператор Exponentiation **

При использовании числовых типов данных для выполнения математических операций, двойная звездочка (**) используется как Экспонирование оператор.

Пример:

a = 5
b = 2
print("a**b = ",a**b)
print("pow(a,b) = ",pow(a,b))

Выход:

a**b =  25
pow(a,b) =  25

Приведенный выше пример использует двойные звездочки для расчета «А к власти B» в числовых выражениях в Python.

❖ Используется для принятия арбитражных аргументов ключевых слов ** Kwargs

Если вы не уверены о том, сколько аргументов ключевых слов должны быть переданы в функцию в программе, то вы можете использовать аргумент с двойными звездочками в качестве префикса к аргументу, который позволяет нам пройти произвольное количество аргументов ключевых слов в нашу функцию. Это позволяет функцию получать словарь аргументов, и он может затем получить доступ к пунктам соответственно.

Пример:

def foo(**kwargs):
  print("Learn freelancing with {0} using {1}!".format(kwargs["org"],kwargs["tech"]))

foo(org = "Finxter", tech = "Python")

Выход:

Learn freelancing with Finxter using Python!

Важно Заметки

Виды аргументов

  • Позиционные аргументы – аргументы, которые могут быть вызваны их положением в определении функции. Когда функция, называемая первым позиционным аргументом, должна быть сначала предусмотрена, второй позиционный аргумент должен быть обеспечен вторым, и так далее.
  • Аргументы ключевых слов – аргументы, которые можно назвать, используя их имя. Как правило, следует равный знак и выражение, чтобы обеспечить его значение по умолчанию.

Давайте приблизимся к этим аргументам в программе, приведенной ниже.

 # a,b required; c optional
def foo(a, b, c = 1): 
    return a * b + c

print ("positional and default: ",foo(1, 2))   # positional and default
print ("positional: ",foo(1, 2, 3)) # positional
print ("keyword: ",foo(c = 5, b = 2, a = 2)) # keyword
print ("keyword and default: ",foo(b = 2, a = 2)) # keyword and default.
print ("positional and keyword: ",foo(5, c = 2, b = 1)) # positional and keyword.
print ("positional, named and default: ",foo(8, b = 0)) #positional, named and default.

Выход:

positional and default:  3
positional:  5
keyword:  9
keyword and default:  5
positional and keyword:  7
positional, named and default:  1

◆ Вы можете использовать любое другое имя вместо кварги с Распаковка оператора (**) в качестве префикса к аргументу. Например, вы можете использовать ** var вместо использования ** kwargs в вашей программе. Таким образом, кварги это только конвенция и часто определяется как сокращенная форма Арбитражные ключевые аргументы В документациях Python.

Пример:

def foo(**var):
    print(var)

foo(a=1,b=2,c=3)

Выход :

{'a': 1, 'b': 2, 'c': 3}

Тонкая разница между * args и ** kwargs.

  • В определениях функции одна звездочка (* ) принимает итератор, как список или кортеж и расширяет его в последовательность аргументов, в то время как двойная звездочка (**) принимает только словарь и расширяет его.
  • * ARGS используется для разрешения произвольного количества аргументов без ключевых слов, а ** Kwargs позволяет произвольному количеству аргументов ключевых слов.
  • Также как аргументы не по умолчанию должны быть размещены до того, как аргументы по умолчанию, аналогично ** Kwargs всегда следует размещать после * args. В противном случае Python бросает ошибку. Правильный порядок аргументов:
    1. Стандартные аргументы
    2. * args аргументы
    3. ** Аргументы KWRGS

Пример

def foo(a, b,*args,**kwargs):
   print(a+b)
   print(args)
   print(kwargs)

d = {'name':"FINXTER",'tech':"Python"}
l = [4,5,6,7]
foo(2,3,*l,**d)

Выход :

5
(4, 5, 6, 7)
{'name': 'FINXTER', 'tech': 'Python'}

Вы можете прочитать больше о едином операторе Asterisk в нашем руководстве в блоге здесь.

❖ Используется для распаковки словаря

Что делает Распаковывать иметь в виду?

Это функция в Python, которая позволяет нам назначать/упаковать все значения/аргументы последовательности в одну переменную.

Пример

def fruits(*args):
    for key in args:
        print(key)


f = ["Apple", "Mango", "Orange"]
fruits(*f)

Выход :

Apple
Mango
Orange

В приведенном выше примере мы распаковали произвольное количество элементов в одну переменную с помощью оператора *. Теперь, если вы распаковываете словарь, используя один оператор Asterisk, вы получаете только распакованную форму клавиш словаря. Чтобы распаковать ключ, а также ценности вместе, мы используем оператор Double Asterisk! Приведенный ниже пример объясняет это.

Пример:

def Result(**kwargs):
    for key in kwargs:
        if kwargs[key] > 90:
            print(str(key) + " " + str(kwargs[key]))


marks = {"Ben" : 96,
        "Emma" : 98,
        "Ron" : 89}

Result(**marks)

Выход:

Ben 96
Emma 98

❒ Словающие слияния с использованием распаковки словаря

Оператор Double Asterisk может использоваться для объединения двух словарей в Python. Словарь распаковка функции z = {** Dict1, ** Dict2} Создает новый словарь и распаковывает все (ключевые значения) пары в новый словарь. Дублирующиеся ключи автоматически разрешены этим методом.

Пример:

d1 = {'value1': 10, 'value': 20}
d2 = {'value': 30, 'value2': 40}
# Merging d1 and d2
z = {**d1, **d2} 
print("MERGED DICTIONARY: ", z)

Выход

MERGED DICTIONARY:  {'value1': 10, 'value': 30, 'value2': 40}

Заключение

Ключ взятки от этой статьи были –

  • Используя двойную звездочку в качестве оператора Exponentiation в Python.
  • Используя двойную звездочку, чтобы принять произвольное количество аргументов ключевых слов.
  • Каковы ключевые слова и позиционные аргументы?
  • Что такое распакование словаря?
  • Слияние словарей с использованием оператора звездочка.

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

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @: