我最近看到了对"异国签名"的引用以及它们在2.6中被弃用的事实(并在3.0中被删除).给出的例子是
def exotic_signature((x, y)=(1,2)): return x+y
Run Code Online (Sandbox Code Playgroud)
是什么让这成为"异国情调"的签名?
奇怪的是,x和y表示单个函数参数,它被解压缩为两个值... x和y.它相当于:
def func(n):
x, y = n
...
Run Code Online (Sandbox Code Playgroud)
这两个函数都需要一个包含两个元素的参数(list或tuple).