2011-05-13 97 views
1

我想弄清楚是否有可能将两个不同的返回值从一个python函数分配给两个单独的变量。是否有可能从Python函数分配两个不同的返回值到两个单独的变量?

以下是函数,它返回一个名称城市的值。

DEF认证():

name = raw_input("What is your name? ") 

city = raw_input("What city do you live in? ") 


if name != "Jerry Seinfeld" or city != "New York": 
    print """ 

    Access denied 

    """ 

else: 
    print """ 


    Authenticated 

    """ 
    return name and city 

现在,我要返回的值分配给两个变量,a和b

我只知道如何分配一个值,像这样。

A =身份验证()

(这实际上赋予了城市价值的,我猜是因为“返回名称”之前进来的代号为“回城”)

是什么我试图做到可能吗?

+1

重复的(http://stackoverflow.com/questions/354883/how-do-you-return-multiple [你如何在Python中返回多个值?] -python-in-python) – GreenMatt 2011-05-13 17:22:17

+0

不完全重复。这会询问“如何以及如何捕捉?”,询问“哪个?”。 – 2011-05-13 17:24:38

回答

8

Python支持元组拆包

def foo(): 
    return 'bar', 42 

a, b = foo() 

它甚至可以与其他序列一起使用。

a, b = [c, d] 

Python 3.x扩展了语法。

a, b, *c = (1, 2, 3, 4, 5) 
2

你应该改变return name and city(因为“和”的使用是逻辑表达式)返回一个元组return (name, city)。现在,您可以指定与元组拆包值:

name,city = authenticate() 
相关问题