2012-06-20 34 views
5

Tôi muốn học python vì vậy tôi đã tải về từ trang web python và tôi thấy 4 loại khác của con trăn xuất hiện:"Loại" nào của Python để bắt đầu?

  • Python (bình thường)
  • IronPython
  • Jython
  • PyPy
  • Stackless Python

Tôi thực sự có thể tìm thấy những điểm khác biệt giữa những thứ này. Ngoài ra cái nào là tốt nhất để bắt đầu.

+6

Bắt đầu với CPython (Python bình thường) – zmbq

+2

Mỗi cách thực hiện đặc tả ngôn ngữ Python. CPython là python bình thường và phát triển python chuẩn. Những người khác là sự thay đổi để hỗ trợ các khía cạnh khác nhau không được hỗ trợ bởi CPython – pyfunc

Trả lời

10

cập nhật để bao gồm điều chỉnh từ những người tử tế trong các ý kiến ​​phần:

Trong triển khai python bạn đề cập đến, bản gốc và phổ biến nhất được sử dụng là CPython (python trên danh sách của bạn - đó là một thông dịch viên cho python thực hiện trong C và chạy như một ứng dụng gốc) và có sẵn cho khá nhiều nền tảng dưới ánh mặt trời. Các biến thể khác là:

  • IronPython: chạy trên bộ thực thi chung Net (giao diện sạch sẽ hơn với các ứng dụng Net khác)
  • Jython: chạy trên JVM (giao diện sạch sẽ hơn với Java và các ứng dụng JVM khác)
  • PyPy: Trình thông dịch Python bao gồm trình biên dịch trong thời gian có thể làm tăng đáng kể hiệu suất thực hiện chương trình. Trình thông dịch và JIT được thực hiện trong RPython (thay vì C), một tập hợp con bị hạn chế của Python, nó có khả năng phân tích tĩnh và suy luận kiểu.
  • Python không xếp chồng: Việc triển khai trình thông dịch python không dựa vào đệ quy trên ngăn xếp thời gian chạy C, do đó cho phép tải các cấu trúc và kỹ thuật lập trình thú vị khác (bao gồm các chuỗi nhẹ) không có sẵn trong CPython.

Có nhiều thư viện lớn cho Python (một trong những lợi thế chính của ngôn ngữ), phần lớn được phát triển cho CPython. Vì một số lý do tương thích, không có biến thể nào ở trên hiện hỗ trợ nhiều như triển khai chính. Vì vậy, vì lý do này, CPython là nơi tốt nhất để bắt đầu và sau đó nếu các yêu cầu trong tương lai của bạn phù hợp với một trong các nền tảng khác - bạn sẽ ở một nơi tốt để tìm hiểu các biến thể từ nền tảng vững chắc trong các khái niệm cơ bản.

+4

Một điểm làm rõ: PyPy là * không * một trình biên dịch Python được triển khai bằng Python.Nó là (1) một trình biên dịch cho RPython (một ngôn ngữ ** khác ** so với Python), và (2) một trình thông dịch Python bao gồm một JIT. (1) tồn tại để biên dịch (2), được thực hiện trong RPython. PyPy sẽ không bao giờ cho phép biên dịch các chương trình Python thành các tệp nhị phân gốc. – Ben

+0

@Ben. Cảm ơn bạn đã làm rõ. –

+0

Hãy thực sự sửa câu trả lời. Lời giải thích hiện tại là gây hiểu lầm tốt nhất, và tôi sẽ không dựa vào tất cả mọi người đọc các bình luận. Trong khi bạn đang ở đó, bạn có thể muốn thay đổi đoạn cuối cùng là tốt. PyPy thực hiện toàn bộ Python 2.7, mô-đun một vài chi tiết thực thi (phần lớn là tối nghĩa) và một phần của API C, vì vậy hầu như tất cả mã Python và một số (mặc dù tôi không thể biết phần lớn) của các phần mở rộng C hữu ích có hoạt động hay không. Tôi khá chắc chắn Stackless và IronPython cũng khá cập nhật và tương thích, nhưng tôi đã không nhìn nhiều vào chúng. – delnan

3

Bắt đầu bằng Python.

Các lựa chọn thay thế dành cho các trường hợp sử dụng đặc biệt áp dụng chủ yếu khi bạn đang tích hợp Python với các ngôn ngữ khác, đây là cách sử dụng ngôn ngữ rất tiên tiến.

4

Python. Tất cả tài liệu bạn sẽ tìm thấy để học ngôn ngữ giả định điều này. Sau đó, nếu bạn thấy cần thiết cho một trong các triển khai khác, tài liệu sẽ giả sử bạn biết Python và giải thích sự khác biệt.

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