2010-08-02 40 views
8

Tôi đã học Python như ngôn ngữ nghiêm túc đầu tiên (không phải BASIC) của tôi khoảng 10 năm trước. Kể từ đó, tôi đã học được rất nhiều người khác, nhưng tôi có xu hướng 'suy nghĩ' bằng Python. Khi tôi xem danh sách các thay đổi, tôi không thấy một số Tôi cần tính năng này. Tôi thường nói với bản thân mình, hmm đó sẽ là một cách tốt để làm điều đó, nhưng tại sao thay đổi nó bây giờ?Tại sao Python 3 (hoặc mới hơn) tốt hơn Python 2?

Những thứ như thay đổi bộ phận sàn mặc định có thể là nỗi đau thực sự để thay đổi cho các dự án lớn. Có vẻ như những người chơi chính đang kéo lê chân họ. Tính năng chính nào khiến tôi muốn đầu tư vào một đường cong học tập khác?

+7

"có thể là một nỗi đau thực sự để thay đổi cho các dự án lớn"? Có thật không? Tôi nghĩ rằng với một thiết kế hợp lý, toán học được tập trung hợp lý và điều này sẽ dẫn đến sự đơn giản hóa. "một đường cong học tập khác"? Bạn đang nói về cái gì vậy? Python 3 liên quan đến hầu như không có học tập - nó liên quan đến việc "gỡ bỏ" Python 2 hack-arounds. Bạn đang nói gì vậy Bạn có ví dụ cụ thể về "đường cong học tập" này không? –

+1

Đó là một điểm công bằng. Tại sao Python3 * không * tốt hơn? Tại sao phải bận tâm với một phiên bản 3 nếu nó tồi tệ hơn? –

Trả lời

10

Là một tính năng chính, có rất nhiều người dường như khá thoát về (supposedly) hỗ trợ unicode trong suốt. Họ đã thay đổi từ str (mảng char 8 bit/loại chuỗi mặc định) và unicode (chuỗi unicode), thành str (chuỗi mặc định (unicode tương thích)) và bytes (dữ liệu nhị phân dưới dạng chuỗi 8 bit).

(Tôi nghĩ tách danh sách byte từ chuỗi là ý tưởng tuyệt vời, nhưng tôi cũng ghét unicode, vì vậy nếu bất cứ điều gì, đây sẽ là một tồi tệ hơn cho cá nhân tôi.)

+7

+1. tôi ghét giao dịch với chuỗi unicode và unicode hỗn hợp. – mpen

+1

Xử lý các chuỗi không phải unicode trong 2.X là một cơn đau. Đặc biệt là nếu bạn phải "nâng cấp" một chương trình mà chỉ được viết bằng ký tự ascii đặt trong tâm trí. Tôi muốn chuyển đổi vì lý do này một mình. – monkut

+0

Vâng, tôi ghét tất cả mớ hỗn độn này, và thông qua "TẤT CẢ các chuỗi phải là unicode!" cách đây rất lâu, nhưng nó vẫn chăm sóc để sửa chữa những thứ tôi nhận được từ các gói của bên thứ ba. –

3

Một cuộc thảo luận tốt về điều này có thể được tìm thấy trong wiki python; Should I use Python 2 or Python 3 for my development activity?

+4

Điều này đã được sao chép từ đây: http://wiki.python.org/moin/Python2orPython3 – interjay

+0

Sao chép và định dạng chính xác tại đây.(-: –

+3

Tại sao bạn xóa thuộc tính được thêm bởi người dùng khác? – interjay

1

Mọi thứ như thay đổi sàn mặc định bộ phận có thể là một nỗi đau thực sự để thay đổi cho các dự án lớn.

Nếu bạn đã bắt đầu làm thay đổi 8 năm trước khi Python 2.2 đã được giới thiệu với //from __future__ import division, nó sẽ không là một nỗi đau bây giờ. Cá nhân, tôi rất vui mừng được cuối cùng là thoát khỏi bộ phận theo phong cách cũ!

Tính năng yêu thích thứ hai của tôi về Python 3.x là phân biệt str/bytes. Bên cạnh việc hỗ trợ Unicode dễ dàng hơn, bytes thuận tiện hơn cho cơ sở dữ liệu BLOB s hơn buffer.

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