Python 3 có tương thích ngược không

Python 3 được giới thiệu để cải thiện Python 2, nhưng tôi nghĩ điều bạn đang hỏi là tại sao chúng không tương thích ngược. Về cơ bản, các nhà phát triển đã cố tình làm cho python 3 không tương thích ngược, vì hai lý do chính

  1. Trước hết, họ muốn thay đổi một số thứ không thể thiếu đối với python 2 và mặc dù sự khác biệt có vẻ nhỏ, nhưng những cải tiến mà họ đã thực hiện sẽ không kết hợp tốt với cấu trúc hiện có. Ví dụ: thay đổi đối với cú pháp "in" mà bạn đã đề cập được thực hiện bởi vì in thực sự chỉ gọi một hàm và thực sự không phải là một từ khóa theo cách giống như "nếu" hoặc "trong khi" là

  2. Một lý do khác khiến khả năng tương thích ngược bị cắt đứt là để tách biệt python 2 và 3. Một số người, bao gồm cả tôi, thích python 2 hơn. 7 trên trăn 3. Vì python 3 đã thực hiện những thay đổi lớn hơn đối với ngôn ngữ, nên các nhà phát triển muốn duy trì hai phiên bản gần như là ngôn ngữ riêng biệt [nếu khá giống nhau]

Đối với tất cả ý định và mục đích, nếu bạn sử dụng python 2. 7, sự khác biệt duy nhất thực sự ảnh hưởng đến bạn là sự thay đổi trong "bản in"

Ngôn ngữ Python thường không cung cấp khả năng tương thích ngược. Khả năng phá vỡ sự thiếu hiệu quả và sửa chữa các lựa chọn thiết kế sai là những lý do chính khiến Python vẫn hoạt động hiệu quả trong những thập kỷ qua. Tuy nhiên, tiêu chuẩn PEP 387 thảo luận rằng các vấn đề không tương thích cần được cân nhắc kỹ lưỡng

Đây là chính sách cơ bản khi tính không tương thích ngược có thể được đưa ra vì lợi ích của tính hiệu quả của ngôn ngữ lập trình

  • Sự thay đổi sẽ có một lợi ích lớn đối với tỷ lệ vỡ, tôi. e. , lợi ích tương đối cao và xác suất phá mã cũ thấp
  • Thay đổi dẫn đến không tương thích nên dễ khắc phục
  • Thay đổi không được dẫn đến thay đổi ngữ nghĩa của một API nhất định vì những loại thay đổi đó cực kỳ khó tìm
  • Một ngoại lệ đối với quy tắc trước đó là nếu một người trải qua thời gian khấu hao hai năm

Các quy tắc này không cố định 100%—ví dụ: hội đồng chỉ đạo có thể cấp ngoại lệ cho những quy tắc đó

Dưới đây là hai trích dẫn liên quan đến chính sách của Python đối với khả năng tương thích ngược

“Để luôn phù hợp và hữu ích, Python phải phát triển thường xuyên; . ” — Victor Stinner

“Tôi không tin rằng cách để Python duy trì sự phù hợp và hữu ích trong 10 năm tới là chấm dứt mọi quá trình phát triển ngôn ngữ. Ai biết được bối cảnh điện toán sẽ như thế nào sau 5 năm chứ đừng nói đến 10 năm? . ” — Barry Warszawa

Tóm tắt. chính sách về khả năng tương thích ngược của phiên bản Python là nên tránh nếu có thể nhưng không được đảm bảo

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Python 3 triển khai rất nhiều tính năng rất hữu ích và phá vỡ khả năng tương thích ngược. Nó làm điều đó có mục đích, để các tính năng tuyệt vời có thể được triển khai ngay cả khi mã Python 2 thực tế có thể không hoạt động chính xác trong Python 3

Thêm tùy chọn dòng lệnh

def __getattr__[name]:
    if [sys.get_python_compat_version[] 

Chủ Đề