Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这在python2.x中非常有效,但在python3.x上却不行_Python_Python 3.x_Python 2.7 - Fatal编程技术网

这在python2.x中非常有效,但在python3.x上却不行

这在python2.x中非常有效,但在python3.x上却不行,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,这在python2.x中非常有效,但在python3.x上却不行 import sys print (sys.version) def add_pair((a,b),(c,d)): return a+c, b+d print (add_pair((10,20),(30,40))) Python3中不再支持元组参数: 在函数中执行任何操作之前,必须先解压缩元组。我很惊讶它在2.x中可以工作,但显然显式元组在函数参数中是可以的。但这从来都不是一种伟大的风格。函数参数应仅用逗号分隔。这

这在python2.x中非常有效,但在python3.x上却不行

import sys
print (sys.version) 

def add_pair((a,b),(c,d)):
    return a+c, b+d

print (add_pair((10,20),(30,40)))
Python3中不再支持元组参数:


在函数中执行任何操作之前,必须先解压缩元组。

我很惊讶它在2.x中可以工作,但显然显式元组在函数参数中是可以的。但这从来都不是一种伟大的风格。函数参数应仅用逗号分隔。这在以下两方面都有效:

import sys
print(sys.version)

def add_pair(x,y):  
    ''' Unpack the tuples here e.g  a, b = x, c, d = y or as below (as per the req)''' 
    return(x[0]+y[0], x[1]+y[1])

print(add_pair((10,20),(30,40)))
他们移除了蟒蛇3中的蛇。因此,替代方法如下所示或上述答案中所述:

def add_pair(pair1, pair2): 
    a, b = pair1
    c, d = pair2
    return a+c, b+d

print(add_pair((10, 20), (30, 40)))

python 3中的元组参数解包。它抱怨syntaxBTW无效,这不是一个问题。类似地,这个lambda x,y,z:x,y+z的等效转换是什么
def add_pair(*kwargs):
    return tuple(sum(i) for i in zip(*kwargs))

print(add_pair((10,20),(30,40)))
# (40, 60)