这是怎样的"操作"用Python

时间:2017-07-11 08:32:41

标签: python

我试图理解这个位是如何工作的:

Var_1, Var_2, Result =  some_function()

脚本:

def some_function():
    return True, False, {"Some": "Dictionary"}

def main():
    Var_1, Var_2, Result =  some_function()
    if not Var_1:
        do something
    else:
        do something_else(Var_2, Result)

if __name__ == '__main__':
    main()

对我来说,难以理解的是开始做的一点,并提供(返回)值,这些值将在main函数中使用,并在some_function()函数内触发main()

由于我是python高级概念的新手,我发现它非常有趣。这个"操作"被称为所以我可以阅读更多关于它是如何工作的。即按行顺序返回一些由,分隔的值,并根据行中的位置解释它们(由于缺乏更好的描述)。

4 个答案:

答案 0 :(得分:5)

它返回https://github.com/Itseez/opencv_contrib。 Python中的元组类似于列表,但它是不可变的:您无法添加,删除或替换项目。

通常,使用语法(a, b, c)构造元组,但在许多情况下括号是可选的,因此a, b, c也是有效的。

在接收端,tuple用于获取元组的各个元素,并将它们分配给单独的变量。

答案 1 :(得分:3)

这里发生的事实上并不是返回了几个值。相反,返回一个元组,然后使用名为tuple unpacking的东西解压缩。

代码相当于

tmp_tuple = some_function()  # return tuple
Var_1, Var_2, Result = tmp_tuple  # unpack tuple

答案 2 :(得分:1)

some_function()返回a tuple (True, False, {"Some": "Dictionary"})

元组对于分组相关数据非常有用,例如像('John Smith', 1960, 'England', 'London', 'Newham')这样的东西可能是存储有关人的信息然后创建5个单独变量的更好方法。

调用Var_1, Var_2, Result = tmp_tuple时,此元组为unpacked

 (Var_1, Var_2, Result) = (True, False, {"Some": "Dictionary"})

因此:

Var_1 = True
Var_2 = False
Result = {"Some": "Dictionary"}

答案 3 :(得分:0)

The docs say:

Except when part of a list or set display, an expression list containing at least one comma yields a tuple

这意味着return x,y将返回一个对象 - 一个元组,其余的只是解压缩它到单独的值。

所以我想说这是两个操作:在return语句中创建元组和在main中解组元组。