使用frozenset从python2更改为python3的内容是什么?
我注意到了这种不同的行为: Python2:
>>> a=frozenset()
>>> a
frozenset([])
Python3
>>> a= frozenset()
>>> a
frozenset()
还有:
Python2
>>> a=frozenset((1,2,3))
>>> a
frozenset([1,2,3])
Python3
>>> a=frozenset((1,2,3))
>>> a
frozenset({1,2,3})
为什么? 感谢名单
答案 0 :(得分:2)
这个问题可以更好地指向例如python.org的python-list,并且可能会合理地关闭。但我会提到两件事。
首先,表示与异常消息一样,故意不属于语言定义。尽管如此,我们的核心开发人员对于更改它们仍然保守,而且几乎总是只针对新版本。即使代码依赖于指定为不依赖的功能,增益也必须值得打破代码的痛苦。
2.7在3.0之后出现,在2.6之后出现。因此,如果新的代表在3.0中,我将在这里假设,那么第一个问题是为什么从2.6变为3.0。答案是,新的销售代表显然更好,而3.0被定义为一个比平常更多的版本,将是进行更改的好时机。第二个问题是为什么不向2.7后退?因为改变不是 紧急,而且对于坚持使用2.x的人来说收益不足。
其次,集合最初是作为导入的集合引入的。我忘了是否还有一个FrozenSet类。无论哪种方式,集合和冻结集合代表可能都是基于它们的前辈。