2008-12-05 27 views
14

Python 2.6 cơ bản là một bước đệm để chuyển đổi sang Python 3 dễ dàng hơn. Rất nhiều tính năng dành cho Python 3 đã được triển khai ở 2.6 nếu chúng không phá vỡ tính tương thích ngược với cú pháp và các lớp libs.Tại sao Python 2.6 không đặt chữ và hiểu hay đọc hiểu dict?

Tại sao không được đặt literals ({1, 2, 3}), thiết lập comprehensions ({v for v in l}), hoặc dict comprehensions ({k: v for k, v in d}) trong số đó? Đặc biệt là sự hiểu biết dict sẽ là một lợi ích lớn ... Tôi thấy bản thân mình sử dụng đáng kể xấu xí hơn dict([(k, v) for k, v in d]) một khủng khiếp rất nhiều thời gian gần đây.

Có điều gì rõ ràng tôi bị thiếu hay đây chỉ là một tính năng không thực hiện việc cắt giảm?

+2

Lưu ý rằng tất cả các tính năng này đã được triển khai trong Python 2.7. http://docs.python.org/dev/whatsnew/2.7.html –

Trả lời

10

Tất cả những thay đổi này là cú pháp/ngữ pháp. Những thay đổi như vậy được truyền thống giới thiệu đầu tiên trong một phiên bản Python x.y với câu lệnh from __future__ import … và được triển khai ít nhất trên phiên bản Python x. (Y + 1). Sự chuyển đổi như vậy chưa xảy ra cho những thay đổi này.

Về mặt kỹ thuật, tôi đã trả lời "lý do" của bạn.

Bây giờ, nếu bạn có nghĩa là, “tại sao không ai dành thời gian để đề nghị, hỗ trợ và thực hiện một cái gì đó mà tôi muốn có trong 2.x cũng có, ngay cả khi họ không biết về nó kể từ I không bao giờ cố gắng đề xuất/hỗ trợ backporting những cải tiến cú pháp trong cả hai comp.lang.python hoặc Python-Dev và I không bao giờ cố đọc ngay cả PEP? ”, sau đó câu trả lời nằm trong bạn quá, và bạn có thể tự cung cấp câu trả lời.

HTH

BTW, bạn không nên sử dụng hình thức dict([(k,v) for k,v in d]), nhưng dict((k,v) for k,v in d). Hiệu quả hơn. Tại sao tạo danh sách trung gian?

Các vấn đề liên quan