为什么我必须从函数中检索变量

时间:2020-01-14 08:28:46

标签: python

def getperson():
    name = "rachel"
    age = 19
    country = "US"
    return name,age,country

name,age,country = getperson()
print(name)
print(age)
print(country)

所以我知道制作变量并返回它们是返回多个变量的方法,但是

name,age,country = getperson()

为?我得到它从getperson()函数检索它,但是我不明白如何,为什么必须将那些变量设置为等于该函数?谁能分解它并向我解释?我觉得这很简单,但我仍然不明白。

3 个答案:

答案 0 :(得分:1)

return name,age,country的意思是getperson()返回包含这3个值的tuple

name,age,country = getperson()中,您将tuple分解为3个变量,每个变量以相同的顺序保存一个值。 name的值为"rachel"age的值为19,依此类推。

print(name) # rachel
print(age) # 19
print(country) # US

答案 1 :(得分:0)

在显示给您的问题的代码中,您声明了三个仅用于 getperson()函数的变量,仅

但是,当在函数中使用多个变量后返回多个变量时,它将作为元组返回。

因此,如果您运行此命令:

def getperson():
    name = "rachel"
    age = 19
    country = "US"
    return name,age,country

print(getperson())

您的输出将是:

('rachel', 19, 'US')

有一个特殊的选项,您可以在一行中创建多个变量,如下所示:

name,age,country = getperson()

现在,您要做的就是分配新变量,称为名称,年龄,国家/地区,然后将它们等于 getperson()返回的值。(由名称,年龄,国家)

因此,您现在可以在其余代码中将名称,年龄,国家/地区用作变量。

答案 2 :(得分:0)

当您位于getperson()函数内部时,创建的所有变量都是该函数的局部变量。如果您在名为last_name的变量中创建并尝试从函数外部访问它,则会出现错误,因为该变量只能在getperson()中本地使用。

这就是为什么您需要向变量发送引发“引用”的原因。由于您对变量使用相同的名称(getperson()函数的内外),这可能会使您感到困惑。这是与您类似的示例:

def getperson():
    param1= "rachel"
    param2 = 19
    param3 = "US"
    return param1, param2, param3

name, age, country = getperson()
print(name)
print(age)
print(country)

因此,您正在通过引用获取函数返回的值。在这种情况下,将返回的第一个值(param1)分配给第一个等于函数(名称)的值,将第二个(param2)分配给第二个(年龄),将第三个值(param3)分配给第三个(国家)。 / p>

如您所见,变量的名称无关紧要,因为它将按照您放置它们的顺序进行分配(这仅适用于不可变变量(int,float,string等),其中可变变量,例如列表是不同的。

我希望这对您有所帮助:)