首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在列表中声明python变量[data] = self.read()?

在列表中声明python变量[data] = self.read()?
EN

Stack Overflow用户
提问于 2020-12-09 10:49:12
回答 1查看 87关注 0票数 3

在研究Odoo的开源代码库时,我发现了一行我不理解的代码,如下所示

代码语言:javascript
复制
[data] = self.read()

在那里找到https://github.com/odoo/odoo/blob/8f297c9d5f6d31370797d64fee5ca9d779f14b81/addons/hr_holidays/wizard/hr_holidays_summary_department.py#L25

我真的很想知道为什么你会把变量放在一个列表中

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-09 11:04:37

它似乎确保了[data]是一个项目的可迭代的,因此从self.read()中解包第一个值

不能将其分配给不可迭代的

代码语言:javascript
复制
>>> [data] = 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot unpack non-iterable int object

适用于可迭代类型,但长度必须等于1

代码语言:javascript
复制
>>> [data] = {'some':2}
>>> data
'some'
>>> [data] = {'foo':2, 'bar':3}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 1)
>>> [data] = [1]
>>> data
1
>>> [data] = [[1]]
>>> data
[1]
>>> [data] = [1, 2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 1)
>>> [data] = []
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: not enough values to unpack (expected 1, got 0)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65209923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档