2013-02-27 4 views
0

Я знаю, что это нуб вопрос ..Python функция, возвращающие много аргументов

У меня есть эти переменные:

pgwdth = 30; 
mrgn = 0; 
fmt = True 

И эта функция:

def Param(x,pgwdth,mrgn,fmt): 
    parametros = x.split(" ") 
    if parametros[0][1] == "p": 
    numerozinho = int(parametros[1]) 
     print "Changing pgwdth" 
     pgwdth += numerozinho 
     print pgwdth 
    elif parametros[0][1] == "m": 
     numerozinho = int(parametros[1]) 
     print "Changing mrgn" 
     mrgn += numerozinho 
     print mrgn 
    elif parametros[0][1] == "f": 
     numerozinho = parametros[1] 
     print "On/Off" 
     if numerozinho == "on\n": 
      fmt = True 
     elif numerozinho == "off\n": 
      fmt = False 
     else: 
      "Error" 
     print fmt 
    else: 
    print "Error" 

Я просто хочу, чтобы вернуться переменные, которые он использовал в качестве аргументов после его изменения.

+2

'return x, pgwdth, mrgn, fmt' как последнее утверждение. – eumiro

ответ

3
return x,pgwdth,mrgn,fmt 

Просто как это.

И где вы это называете:

val1,val2,val3,val = Param(x,pgwdth,mrgn,fmt) 
3

Функция возвращает ровно один результат. Хитрость заключается в том, чтобы сделать этот результат tuple, содержащий несколько значений.

return (x, pgwdth, mrgn, fmt) 

В Python синтаксисе фигурные скобки вокруг кортежа не являются обязательными, так что вы будете чаще видеть

return x, pgwdth, mrgn, fmt 

который выглядит как возвращение несколько значений, но теперь ясно, действительно, есть только одно возвращаемое значение

+0

Маленькие причуды, подобные этому, затрудняют чтение Python, но более интересны для кода. – Gjordis

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