Подстановочные знаки в Python?

На протяжении многих лет я замечал переменную 'wildcard' в различных битах и ​​частях Python, с которыми я сталкивался. Я предполагал, что он работает как Haskell: позволяет помещать переменную там, где она требуется в формальных параметрах, но не связывает ее.

Я использовал это, например, в левой части присваивания распаковки кортежа, когда мне не нужна одна из переменных.

Например:

_, extension = os.path.splitext(filename)

Итак, когда я сегодня написал нечто подобное:

(lambda (x,_,_): x)((1,2,3))

I.E. Дважды пробовал привязать символ подчеркивания, получил синтаксическую ошибку. Я был удивлен, увидев, что _ действительно настоящая переменная:

(lambda (x,_,z): _)((1,2,3))
> 2

Похоже, _ - это просто имя переменной, как и любое другое.

Есть ли настоящая переменная с подстановочными знаками, которую я могу использовать по своему усмотрению (т. Е. Могу использовать более одной переменной в назначении распаковки кортежа), как в первом примере?

5
задан Joe 1 November 2011 в 16:03
поделиться