编程语言-多任务是如何在Python中实现的



我知道Python有一个强大的多赋值函数,例如:我们可以做

a, b = 1, 2
a, (b, c) = 1, (2, 3)

for a, (b, c) in [(1, (2, 3)), ]:
    print a, b, c

但是这是如何实现的呢?它是语法糖还是更复杂的东西?

如果你想深入了解它的细节,它被称为'元组解包',但它实际上适用于右边的任何可迭代对象,只是赋值的变量数量必须与可迭代对象中的元素数量相匹配。我不会称它为任何东西的语法糖,因为它确实发生在运行时——它并没有以某种方式提前神奇地转换成一系列单独的赋值语句。

元组赋值,来自"如何像计算机科学家一样思考"

当我尝试学习python时,它帮助了我很多,它解释了元组赋值以及如何考虑打包/解包(不一定是元组,只要左边是可赋值的,右边是可迭代的)

list = [0]*3 [list[0],list[1],list[2]] = {1:1,2:2,3:3} list is now "[1,2,3]"

你可能已经知道这个了,但是为了使它完整,元组赋值也适用于函数:

a,b,c = function_return_a_three_tuple()

所以python中的函数可能看起来像它们可以返回多个值,但这是一个错误的说法,它们只是返回一个元组,元组赋值使看起来像 python中的函数比其他语言更强大。

最新更新