2016-01-18 3 views
-1

Что изменилось с python2 на python3 с помощью frozenset?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}) 

Зачем? Thanx

+0

Редакция изменилась, где проблема? –

+0

Никогда не говорил, что есть один, просто хотел узнать больше. – asdf

+1

'frozenset ([1,2,3])' стал 'frozenset ({1,2,3})' потому что '{...}' - относительно новый синтаксис для наборов (он также доступен в python 2.6, но изменение представления в python 2.x означало бы нарушение совместимости); 'frozenset ([])' стал 'frozenset()', потому что он короче и потому что 'frozenset ({})' будет непоследовательным. –

ответ

2

Этот вопрос будет лучше ориентирован, например, на python-список python.org и, возможно, еще будет разумно закрыт. Но я остановлюсь на двух вещах.

Во-первых, представления, такие как сообщения об исключениях, намеренно не являются частью определения языка. Тем не менее, мы, основные разработчики, консервативны в отношении их изменения и почти всегда только для новых версий. Коэффициент усиления должен стоить боли при разрыве кода, даже если код зависит от функций, указанных как не зависящих от них.

2.7 вышел после 3.0, который cam out после 2.6. Поэтому, если новые повторители находятся в 3.0, что я собираюсь здесь предположить, тогда первый вопрос заключается в том, почему изменение с 2.6 до 3.0. Ответ будет заключаться в том, что новые представители явно лучше и 3.0, будучи определенными как релиз, который сломался бы больше, чем обычно, было бы подходящим временем для внесения изменений. Второй вопрос заключается в том, почему бы не поддерживать до 2.7? Потому что изменение не было , что срочно, и недостаточный выигрыш для людей, придерживающихся 2.x.

Во-вторых, комплекты были первоначально представлены как импортированный набор. Я забыл, был ли также класс FrozenSet. В любом случае, набор и фризонсет-репы, возможно, были основаны на их предшественниках.

Смежные вопросы