Python 多变量声明
我在Python中看到了这个声明,但我不理解它的含义,也找不到解释:Python 多变量声明,python,opencv,variable-declaration,Python,Opencv,Variable Declaration,我在Python中看到了这个声明,但我不理解它的含义,也找不到解释: ret, thresh = cv2.threshold(imgray, 127, 255, 0) 问题是:ret和thresh之间为什么有逗号?这是什么类型的赋值?这是一种值解包语法。 cv2.threshold(imgray,127255,0)返回一个两元素元组。 使用此语法,您可以将此元组的元素分配给单独的变量ret和thresh,这是一个“元组”或“解构”分配-请参见示例cv2.threshold返回一个包含两个值的元
ret, thresh = cv2.threshold(imgray, 127, 255, 0)
问题是:
ret
和thresh
之间为什么有逗号?这是什么类型的赋值?这是一种值解包语法。cv2.threshold(imgray,127255,0)
返回一个两元素元组。使用此语法,您可以将此元组的元素分配给单独的变量
ret
和thresh
,这是一个“元组”或“解构”分配-请参见示例cv2.threshold
返回一个包含两个值的元组,因此它等效于:
temp = cv2.threshold(...)
ret = temp[0]
thresh = temp[1]
请参见语言参考中的:
如果目标列表是以逗号分隔的目标列表:对象必须是一个iterable,其项数必须与目标列表中的目标数相同,并且这些项从左到右分配给相应的目标
您可以使用此语法将元组解压为单个变量,例如。g、 :
a, b = (0, 1)
# a == 0
# b == 1
您的代码与以下代码相同:
result = cv2.threshold(...)
ret = result[0]
thresh = result[1]