import sys
print (sys.version)
def add_pair((a,b),(c,d)):
return a+c, b+d
print (add_pair((10,20),(30,40)))
这在python2.x上完美运行,但在python3.x上却不行
答案 0 :(得分:2)
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)))
Python3中不再支持元组参数:http://www.python.org/dev/peps/pep-3113/
在对该函数执行任何操作之前,必须打开元组的包装。
答案 1 :(得分:0)
我很惊讶它应该可以在2.x中运行,但是显然在函数参数中可以使用显式元组。但这绝不是很棒的风格。函数参数应仅用逗号分隔。两者均可使用:
def add_pair(pair1, pair2):
a, b = pair1
c, d = pair2
return a+c, b+d
print(add_pair((10, 20), (30, 40)))
答案 2 :(得分:0)
他们删除了python3中的unpacking of tuple parameter。因此,替代方法是这样或上面的答案中提到的:
def add_pair(*kwargs):
return tuple(sum(i) for i in zip(*kwargs))
print(add_pair((10,20),(30,40)))
# (40, 60)