我见过一些 Python 函数是这样写的:
def get_year((year,prefix,index,suffix)):
return year
如果没有像这样的额外括号,它与其他函数有何不同(如果有的话):
def do_format(yr,pfx,id,sfx):
return "%s %s %s/%s"%(yr, id, pfx, sfx)
或者这只是风格的问题,或者如果它们不同,是否可以在不影响现有调用者语法的情况下将 get_year() 重写为 do_format() 的风格,反之亦然?
最佳答案
第一个函数接受一个元组参数,而第二个函数接受 4 个参数。您可以单独传递这些参数,也可以使用 splat
运算符将这些参数作为元组传递,这会将元组解压为单独的参数。
例如:
# Valid Invocations
print do_format(*('2001', '234', '12', '123')) # Tuple Unpacking
print do_format('2001', '234', '12', '123') # Separate Parameter
print get_year(('2001', '234', '12', '123'))
# Invalid invocation.
print do_format(('2001', '234', '12', '123')) # Passes tuple
关于python - 为什么某些 Python 函数在参数列表周围有一组额外的括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14880406/