在打印的 python 2 字典值中,`{...}` 是什么意思?
What does `{...}` mean in a python 2 dictionary value printed?
在调试 python 程序时,我不得不在日志文件上打印一个巨大字典的值。我复制粘贴了该值,当我在 python 2 解释器中分配它时,我得到了 SyntaxError: invalid syntax
。什么?这怎么可能?仔细查看后,我发现文件中的字典是这样的:
{'one': 1, 'two': 2, 'three': {...}}
键 three
的值是 {...}
,这导致了无效语法错误。
将此词典粘贴到 python 2 解释器上会引发 Syntax Error
异常。将其粘贴到 python 3 解释器上,分配的值结果为 {'one': 1, 'two': 2, 'three': {Ellipsis}}
。
那么,python 2 中的 {...}
是什么意思,为什么语法在 python 2 中无效,即使该值是从 [=27 打印在日志文件中的=] 2 脚本?
如果你这样写字典:
d = dict(one=1, two=2)
d['three'] = d
print(d)
你得到输出
{'one': 1, 'two': 2, 'three': {...}}
(尽管旧版本 Python 的顺序可能有所不同)。
...
in container repr 用于表示容器包含自身,这样repr就不会无限递归了。
在调试 python 程序时,我不得不在日志文件上打印一个巨大字典的值。我复制粘贴了该值,当我在 python 2 解释器中分配它时,我得到了 SyntaxError: invalid syntax
。什么?这怎么可能?仔细查看后,我发现文件中的字典是这样的:
{'one': 1, 'two': 2, 'three': {...}}
three
的值是 {...}
,这导致了无效语法错误。将此词典粘贴到 python 2 解释器上会引发 Syntax Error
异常。将其粘贴到 python 3 解释器上,分配的值结果为 {'one': 1, 'two': 2, 'three': {Ellipsis}}
。
那么,python 2 中的 {...}
是什么意思,为什么语法在 python 2 中无效,即使该值是从 [=27 打印在日志文件中的=] 2 脚本?
如果你这样写字典:
d = dict(one=1, two=2)
d['three'] = d
print(d)
你得到输出
{'one': 1, 'two': 2, 'three': {...}}
(尽管旧版本 Python 的顺序可能有所不同)。
...
in container repr 用于表示容器包含自身,这样repr就不会无限递归了。