我试图理解这个位是如何工作的:
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高级概念的新手,我发现它非常有趣。这个"操作"被称为所以我可以阅读更多关于它是如何工作的。即按行顺序返回一些由,
分隔的值,并根据行中的位置解释它们(由于缺乏更好的描述)。
答案 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)
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中解组元组。