2013-07-01 5 views
3

Я пытаюсь сделать что-то вроде этого в моем коде:Использование кортежа возвращения функции Python в другом вызове функции

def fu(): 
    return np.array([1,2,3]), np.array([4,5,6]) 

def bar(x,y,z): 
    print np.size(x) 
    print np.size(y) 
    print np.size(z) 

bar(np.array([7,8]), fu()) 

, но я получаю сообщение об ошибке, говорящее bar() takes exactly 3 arguments (2 given). Как я могу решить эту проблему?

ответ

5

Попробуйте это:

bar(np.array([7,8]), *fu()) 

(unpack кортеж, возвращаемый fu())

+1

Точно, спасибо! –

0
import numpy as np 

def fu(): 
    return np.array([1,2,3]), np.array([4,5,6]) 

def bar(x,y,z): 
    print np.size(x) 
    print np.size(y) 
    print np.size(z) 

bar(np.array([7,8]), *fu()) 

--output:-- 
2 
3 
3 
+1

Как это отличается от моего ответа? – arshajii

+0

@arshajii, извините, я не получил никаких телепатических предупреждений о том, что вы отвечали на вопрос в то же время, что и я. Вы отправили их? – 7stud

+0

Вы ответили через две минуты, поэтому я предположил, что мне не нужно отправлять какие-либо телепатические предупреждения. Во всяком случае, я не хочу быть конфронтационным, просто делая свою часть, чтобы не дать помехам межсетевых экранов беспорядок. – arshajii

Смежные вопросы