【发布时间】:2011-11-01 16:03:55
【问题描述】:
多年来,我注意到我遇到的各种 Python 中的“通配符”变量。我认为它像 Haskell 一样工作:允许您将变量放在形式参数中需要的位置,但不绑定它。
例如,当我不需要其中一个变量时,我在元组解包赋值的左侧使用了它。
例如:
_, extension = os.path.splitext(filename)
所以当我今天写了类似这样的东西时:
(lambda (x,_,_): x)((1,2,3))
I.E.我尝试绑定下划线两次,收到语法错误。我惊讶地发现 _ 确实是一个实变量:
(lambda (x,_,z): _)((1,2,3))
> 2
看起来_ 只是一个变量名,和其他变量名一样。
根据第一个示例,我是否可以随意使用真正的通配符变量(即能够在元组解包分配中使用多个)?
【问题讨论】:
标签: python pattern-matching tuples wildcard iterable-unpacking