2

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

def first((a, b)): 
    return a 

x = (4, 9) 
first(x) 
li = [(5, 4), (8, 9)] 
map(first, li) 

def second(a, b): 
    # does not work the same way 
    return b 

Я не вижу никакой литературы по использованию этого. Что такое словарь, который использует сообщество python для этого? Есть ли веская причина не использовать это?

+3

Наличие аргумента функции кортежа является недопустимым синтаксисом. (по крайней мере, в Python 3) –

+2

И если бы это было, это было бы в [Документах Python] (https://docs.python.org/3/). –

+0

Второе определение функции не использует кортежей вообще. Вы указываете здесь два отдельных позиционных аргумента. – Igor

ответ

4

Это называется tuple parameter unpacking и было removed in Python 3.0.

Как @zondo сказал, вы, возможно, не захотите использовать его по соображениям совместимости. Я сам по-прежнему использую его иногда в Python 2. Вы найдете причины против него в PEP моего первого соединения, хотя имейте в виду, что это причины, по которым он был удален с языка, и я думаю, что это было хотя бы частично, потому что это упростило для производителей Python, что не обязательно является причиной для вас или меня, чтобы избежать этого.

1

В Python2 это здорово. Однако это недопустимый синтаксис в Python3, поэтому я бы не рекомендовал его для соображений форвардной совместимости.