如何从python中的函数返回字典和多个变量?

时间:2014-10-08 07:49:51

标签: python function variables dictionary return

我正在尝试设置一个记录到2个变量和字典的函数,dictionar可以工作,但是这两个变量返回错误的东西

mydict{}
fname = 0
lname = 0

def enterdetails(fname, lname):
    fname = input ("First Name: ");
    fnamedict = fname
    mydict['FirstName'] = fnamedict;

   lname = input ("Last Name: ");
   lnamedict = lname
   mydict['LastName'] = lnamedict;
   print(fname)
   print(lname)

   return mydict
   return (fname, lname)

fname, lname = enterdetails(fname, lname)
print(fname, lname)
print(mydict)

然而,fname和lname的变量分别表示为FirstName和LastName。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

您有两个return语句,但只返回第一个语句。相反,将所有三个变量一起作为元组返回:

def enterdetails(fname, lname):
    ...
    return mydict, fname, lname

mydict, fname, lname = enterdetails(fname, lname)
print(fname, lname)
print(mydict)

答案 1 :(得分:1)

字典有效,因为您将其设置为global variable。 但是,该函数实际上正在返回"字典"首先,所以你的拆包都搞砸了。

删除return mydict或使用return mydict, (fname, lname),这样您最终会得到:

mydict, (fname, lname) = enterdetails(fname, lname)

但正如我上面提到的,mydict是一个全局变量,所以没有必要返回该值。

答案 2 :(得分:0)

您不能将return置于return之下

return mydict
return (fname, lname) #this won't return any thing

您可以采取的方法之一是:

  ....
  return [mydict, fname, lname]

data = enterdetails(fname, lname)
mydict = data[0]
fname = data[1]
lname = data[2]