Python 2.7 从python2到python3的冻结设置

Python 2.7 从python2到python3的冻结设置,python-2.7,python-3.x,frozenset,Python 2.7,Python 3.x,Frozenset,使用frozenset从python2到python3发生了什么变化 我注意到这种不同的行为: 蟒蛇2: 蟒蛇3 >>> a= frozenset() >>> a frozenset() >>> a=frozenset((1,2,3)) >>> a frozenset({1,2,3}) 而且: 蟒蛇2 >>> a=frozenset((1,2,3)) >>> a frozenset([

使用frozenset从python2到python3发生了什么变化

我注意到这种不同的行为: 蟒蛇2:

蟒蛇3

>>> a= frozenset()
>>> a
frozenset()
>>> a=frozenset((1,2,3))
>>> a
frozenset({1,2,3})
而且:

蟒蛇2

>>> a=frozenset((1,2,3))
>>> a
frozenset([1,2,3])
蟒蛇3

>>> a= frozenset()
>>> a
frozenset()
>>> a=frozenset((1,2,3))
>>> a
frozenset({1,2,3})
为什么?
Thanx

例如,这个问题最好直接指向python.org的python列表,并且可能会被合理地关闭。但我要提到两件事

首先,表示,如异常消息,有意不作为语言定义的一部分。尽管如此,我们核心开发人员对更改它们是保守的,而且几乎总是只针对新版本。即使代码依赖于被指定为不依赖的特性,也要付出破坏代码的痛苦,这一收益必须是值得的

2.7在3.0之后出现,而凸轮在2.6之后出现。因此,如果新的销售代表在3.0中,我将在这里假设,那么第一个问题是为什么从2.6更改为3.0。答案是,新的销售代表显然更好,而3.0被定义为一个比平时更具突破性的版本,是做出改变的好时机。第二个问题是为什么不向后移植到2.7?因为改变并不是那么紧迫,而且对于坚持2.x的人来说收益不足


第二,集合最初是作为导入集合引入的。我忘了是不是也有冷冻课。不管怎样,集合和frozenset Rep都可能是基于他们的前辈。

repr发生了明显的变化,问题在哪里?从来没有说过有一个,只是想知道更多。frozenset[1,2,3]变成了frozenset{1,2,3},因为{…}是集合的相对新语法,它在python 2.6中也可用,但是在Python2.x中更改repr意味着破坏兼容性;frozenset[]变为frozenset是因为它较短,而且frozenset{}不一致。