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()函数检索它,但是我不明白如何,为什么必须将那些变量设置为等于该函数?谁能分解它并向我解释?我觉得这很简单,但我仍然不明白。
答案 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等),其中可变变量,例如列表是不同的。
我希望这对您有所帮助:)