python-3.x - 在列表 [data] = self.read() 中声明一个 python 变量?
问题描述
在研究 Odoo 的开源 repo 时,我发现了一行我不理解的代码,如下所示
[data] = self.read()
我真的很想知道你为什么要把变量放在一个列表中
解决方案
它似乎确保它[data]
是一个项目的可迭代,因此从self.read()
它不能分配给不可迭代的
>>> [data] = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot unpack non-iterable int object
适用于可迭代类型,但长度必须等于 1
>>> [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)
推荐阅读
- java - 在 Sleuth 的日志中看不到 traceId 和 spanId
- javascript - 如何通过javascript中的onclick将值从一个页面传递到另一个页面?
- python-3.x - 查找和替换引号之间的逗号
- c - 遍历链表gdb时不断更新watchpoint
- c - C 语言中的 Brain**** 实现
- firebase - 尝试为我的 Firebase 云功能设置 VPC 以使用专用 IP 地址时出现意外错误
- python - 如何修复屏幕pygame顶部的敌人故障
- python-3.x - render() 得到了一个意外的关键字参数“renderer”或脆的形式
- react-native - 如何在 React Navigation 5 中用不同的上下文包装两个不同的选项卡
- django - Django:如何将变量插入 path() kwargs