r, g, b, *a = img_list[generated_number]
这在python3中意味着什么?我将stegano库移植到python 2(因为从sbcl导入时,盗版电池在python3中的库存在问题)。
有没有办法将这种表示法转换为python 2表示法(比如import typing
和x.__annotations__ = {}
如何克服类型注释?更一般地说,这应该表示什么?因为它在python 2上运行时引发语法错误。
谢谢!
答案 0 :(得分:1)
这是一个带有catch-all组件的可迭代解包赋值;前3个值分别分配给r
,g
和b
,其余值分配为*a
的序列(捕获前3个值以外的任何值) )。
要在Python 2中实现相同功能,您需要使用切片:
(r, g, b), a = img_list[generated_number][:3], img_list[generated_number][3:]
有关新功能的详细信息,请参阅PEP 3132 -- Extended Iterable Unpacking。