python多个赋值

问题描述

clipboard.png

我在学习python的Opencv库时遇到了这样的代码,不知道为什么左边两个值,但是右边只有一个

相关代码

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(Ture):
    ret,frame = cap.read()
    
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

题目来源及自己的思路

python多个赋值我知道可以a,b = 1,2
但这样子实属迷惑

阅读 3.4k
4 个回答

python中函数可以返回多个值。这个叫多重赋值,很方便。例如交互两个变量的值就可以这样写:a, b = b, a,不用中间变量。

因为这个函数返回值是一个元组,元组内有二个元素,可以分别赋值到ret, frame里。

这个叫【可迭代拆包】,只要赋值符号右边是个【可迭代对象】,就能被拆包后直接赋值给多个变量。

name, age = ('ugu', 20)
print(name, age)        # 'ugu' 12

这叫做拆包,可以做到平行赋值,类似于JavaScript语言中的解构赋值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题