За прошедшие годы я заметил переменную 'wildcard' в разных частях Python, с которыми я сталкивался. Я предположил, что это работает как Haskell: позволяет вам поместить переменную туда, где она требуется в формальных параметрах, но не связывать ее.
Я использовал это, например, в левой части назначения для распаковки кортежей, когда мне не нужна ни одна из переменных.
Например:
_, extension = os.path.splitext(filename)
Итак, когда я написал что-то похожее на это сегодня:
(lambda (x,_,_): x)((1,2,3))
т.е. Я пытался связать подчеркивание дважды, я получил синтаксическую ошибку. Я был удивлен, увидев, что _ действительно настоящая переменная:
(lambda (x,_,z): _)((1,2,3))
> 2
Похоже, _
это просто имя переменной, как и любое другое.
Существует ли истинная подстановочная переменная, которую я могу использовать по своему усмотрению (т.е. использовать более одного в назначении для распаковки кортежей), как в первом примере?