2014-03-28 42 views
0

我有一個函數返回2個元組中的2個值。下面是函數:Python - 從另一個函數返回到另一個變量的單獨元組

def validate_move(self): 
    import ast 
    source = tuple(int(x.strip()) for x in input("position:").split(',')) 
    target = tuple(int(x.strip()) for x in input("position:").split(',')) 
    if self.validate_position_source(source) == True: 
     if self.validate_position_target(source, target) == True: 
      return source, target 

的返回是這樣的:

((3, 2), (1, 4)) 

第一個元組是源和第二target.I既想擁有的元組到另一個函數中的一個變量。例如這裏,

a = (3,2) 
b= (1,4) 

我知道我必須要調用的函數,但我不知道如何「摳」的元組到變量。

+0

當心,如果一個或兩個的你'if'報表中'FALSE',這將返回'None',當你試圖解開'你會得到一個錯誤沒有'作爲'元組'。 – SethMMorton

回答

2

只是分配給多個變量:

a, b = obj.validate_move() 

Python將解開你的返回值和每個元素分配給命名爲=分配左側的不同的目標。

你也可以只解決的元組的每個元素:

result = obj.validate_move() 
a = result[0] 
b = result[1] 

但拆包作業是方便多了。

1

這應該工作:

source, target = your_object.validate_move() 
相關問題