Python 3.14 mang đến tính song song thực sự, các mẫu an toàn và trải nghiệm mượt mà hơn

  • Chú thích lười biếng và chuỗi t cung cấp hiệu suất và mẫu an toàn.
  • Trình thông dịch phụ, cải tiến luồng tự do và ít khóa hơn giúp tăng tính song song.
  • Zstandard, công cụ asyncio mới và các bản sửa lỗi rõ ràng hơn giúp cuộc sống hàng ngày trở nên dễ dàng hơn.
  • Gỡ lỗi an toàn và trình thông dịch mới với các lệnh gọi đuôi giúp cải thiện khả năng hiển thị và tốc độ.

Python 3.14

Python tiếp tục phát triển và củng cố vị thế của mình như một công cụ quan trọng trong khoa học dữ liệu, phát triển backend, tự động hóa và giáo dục, và phiên bản 3.14 mang đến nhiều thay đổi ảnh hưởng đến hiệu năng, khả năng xử lý đồng thời và trải nghiệm người dùng hàng ngày . Trong hướng dẫn này, chúng tôi sẽ giải thích, với các ví dụ và ngữ cảnh, ý nghĩa đằng sau các từ viết tắt và các module mới mà bạn sẽ thấy ở khắp mọi nơi, và tại sao những cải tiến này lại tác động đến cả người mới bắt đầu và các nhóm triển khai trong môi trường sản xuất.

Ngoài những thông tin thường thấy xung quanh mỗi bản phát hành, ở đây chúng tôi đã tập hợp những tính năng quan trọng nhất được công bố và ghi nhận chính thức, cùng với các chi tiết thực tế được chia sẻ bởi các nhà phát triển đã sử dụng phiên bản 3.14. Từ chú thích trì hoãn đến các trình thông dịch con trong thư viện chuẩn, bao gồm t-string, Zstandard, trình gỡ lỗi an toàn mới và các cải tiến REPL , những điều cần thiết đều được giải thích rõ ràng ở đây.

Tổng quan: Những thay đổi thực sự trong Python 3.14

Python 3.14 được phát hành vào ngày 7 tháng 10 và mang đến những thay đổi về triển khai, API và thư viện chuẩn, ảnh hưởng đến một số lĩnh vực quan trọng. Tài liệu chính thức vẫn giữ nguyên phần "Có gì mới" và "Nhật ký thay đổi" được xây dựng từ tệp Misc/NEWS.d, đóng vai trò như một lộ trình chi tiết để xem từng dòng những gì đã được thêm vào. Nhìn chung: khả năng xử lý song song hữu ích hơn, các khả năng mới cho việc tạo mẫu và gỡ lỗi, đóng gói nén được hiện đại hóa và một bộ thông báo lỗi hữu ích hơn nhiều.

Trong thực tế, điều này có nghĩa là các chương trình sẽ ít xảy ra xung đột luồng hơn, có nhiều tùy chọn hơn để song song hóa mà không làm tắc nghẽn GIL, ít gặp sự cố bất ngờ với các chú thích và một giao diện điều khiển tương tác hữu ích hơn là gây cản trở. Hơn nữa, chính cộng đồng cũng nhấn mạnh những cải tiến thiết thực như màu sắc trong REPL và PDB, những cải tiến cho argparse và unittest, và các tiện ích thư viện chuẩn giúp đơn giản hóa các tác vụ hàng ngày.

Chú thích hoãn lại: PEP 649 + PEP 749

Một trong những thay đổi quan trọng nhất là việc trì hoãn đánh giá các chú thích trong hàm, lớp và mô-đun. Giờ đây, thay vì được đánh giá khi định nghĩa, chúng được lưu trữ trong các hàm đặc biệt và được giải quyết khi cần thiết. Điều này giúp giảm thời gian định nghĩa, tránh lỗi do tham chiếu tiến và giúp việc làm việc với các kiểu dữ liệu lớn hoặc các thao tác nhập khẩu tốn kém trở nên dễ quản lý hơn nhiều.

Để kiểm tra chúng, mô-đun xuất hiện annotationlib, với ba định dạng chính: VALUE (đánh giá theo giá trị thời gian chạy như trước), FORWARDREF (tên nhãn hiệu chưa được xác định) và STRING (trả về chú thích dưới dạng văn bản). Đối với việc di chuyển, khối chuyển mã trong tài liệu chính thức cung cấp hướng dẫn về thời điểm cần thay đổi mã, mặc dù trong hầu hết các trường hợp, không cần phải thay đổi gì cả..

Một chi tiết quan trọng: nếu bạn đang sử dụng from __future__ import annotations, ngữ nghĩa cụ thể của nó vẫn được áp dụng, vì vậy hãy kiểm tra công cụ đánh máy của bạn. Mục tiêu chung là cải thiện hiệu suất và khả năng sử dụng, đồng thời vẫn duy trì khả năng tự kiểm tra khi cần thiết..

Các trình thông dịch phụ trong thư viện chuẩn: PEP 734

CPython đã cho phép nhiều trình thông dịch thông qua C-API trong nhiều thập kỷ, nhưng 3.14 mang chúng đến với mọi người concurrent.interpreters. Điều này mở ra cánh cửa cho sự đồng thời giống con người hơn và tính song song đa lõi thực sự mà không cần phải luôn kéo các tiến trình..

Bạn nhận được gì? Các mô hình như CSP hoặc mô hình actor, khả năng cách ly mặc định với tùy chọn chia sẻ rõ ràng và mức tiêu thụ tài nguyên thấp hơn so với các tiến trình. Đối với các ứng dụng đòi hỏi nhiều CPU, kể từ phiên bản 3.12, các trình thông dịch được cách ly đủ để chạy song song, mở khóa các trường hợp trước đây bị hạn chế bởi GIL.

Hiện tại có những hạn chế: khởi động trình thông dịch chưa được tối ưu hóa, việc sử dụng bộ nhớ có thể được cải thiện, ít tùy chọn chia sẻ thực sự ngoài memoryviewvà hầu hết các tiện ích mở rộng PyPI không được hỗ trợ đầy đủ. Tin tốt là tiêu chuẩn đã bao gồm hỗ trợ, có một InterpreterPoolExecutor en concurrent.futuresvà cộng đồng đang di chuyển chip trong Cython, pybind11, nanobind hoặc PyO3.

Mẫu dây chữ T: PEP 750

T-strings xuất hiện, một cơ chế mẫu với cú pháp f-string nhưng trả về một đối tượng. Template với các phần tĩnh riêng biệt và nội suy, không phải là str kết thúc. Tính năng này cho phép bạn xử lý nội dung trước khi thêm vào, khử trùng thông tin đầu vào của người dùng và lắp ráp DSL nhẹ an toàn hơn..

Bạn viết với một tiền tố t thay vì f, bạn lặp lại Template và bạn xử lý từng đoạn hoặc nội suy theo ý thích của mình. Từ việc thoát HTML đến xây dựng cấu trúc giống DOM hoặc các mẫu chấp nhận từ điển thuộc tính, bạn sẽ có được sự linh hoạt mà không làm mất đi tính rõ ràng..

Python 3.14 giới thiệu giao diện an toàn để gỡ lỗi bên ngoài: PEP 768

Phiên bản 3.14 giới thiệu giao diện gỡ lỗi không tốn tài nguyên, cho phép các trình gỡ lỗi và trình phân tích hiệu năng can thiệp an toàn vào các tiến trình Python đang chạy. Không còn các giải pháp tạm thời không an toàn nữa: giờ đây đã có các điểm chạy an toàn để chèn mã gỡ lỗi mà không cần đi chệch khỏi đường dẫn thông thường của trình thông dịch.

Để tạo điều kiện thuận lợi cho việc này, nó được phơi bày sys.remote_exec(), gửi mã để thực thi tại điểm an toàn tiếp theo trong tiến trình mục tiêu. PEP mô tả giao thức cơ bản, bao gồm các biện pháp kiểm soát bảo mật để hạn chế quyền truy cập và ngăn chặn việc lạm dụng, đây là yếu tố quan trọng trong các hệ thống có tính khả dụng cao..

Loại trình thông dịch mới với lệnh gọi đuôi trong C

Một cải tiến kỹ thuật khác là một trình thông dịch thay thế kết nối các lệnh gọi đuôi giữa các hàm C nhỏ triển khai mã lệnh, thay vì một hàm lớn switch. Trên các nền tảng và trình biên dịch được hỗ trợ (Clang 19+ trên x86-64 và AArch64), các điểm chuẩn ban đầu cho thấy sự cải thiện về mặt hình học từ 3% đến 5%..

Đây là tùy chọn và được khuyến nghị kích hoạt PGO vì đây là thiết lập đã được chứng minh là mang lại lợi nhuận. Nó được kích hoạt với tùy chọn biên dịch --with-tail-call-interpvà GCC dự kiến ​​sẽ hỗ trợ trong tương lai.

Chế độ luồng tự do: PEP 703 và hiệu suất thực tế

Chế độ không sử dụng GIL, được giới thiệu trong phiên bản 3.13, đã có một bước tiến vượt bậc trong phiên bản 3.14: các thay đổi về C-API được nêu trong PEP 703 đã được hoàn thiện, và các giải pháp tạm thời được thay thế bằng các giải pháp lâu dài. Trình thông dịch thích ứng chuyên dụng (PEP 659) hiện đang hoạt động trong chế độ này, cùng với các tối ưu hóa khác, giúp giảm thiểu sự suy giảm hiệu năng.

Ngày nay, mức tổn thất trong xử lý luồng đơn là khoảng 5-10% tùy thuộc vào nền tảng và trình biên dịch, một mức giá hợp lý so với mức tăng trong tính song song thực tế. Trên Windows, khi biên dịch phần mở rộng cho bản dựng luồng tự do, bạn phải xác định Py_GIL_DISABLEDvà trong thời gian chạy bạn có thể kiểm tra cài đặt thông qua sysconfig.get_config_var().

Ngoài ra, lá cờ xuất hiện -X context_aware_warnings để kiểm soát các bộ lọc cảnh báo theo ngữ cảnh, được bật theo mặc định trong các bản dựng không có GIL và bị tắt trong các bản dựng duy trì GIL. Cũng đến thread_inherit_context để các luồng được tạo ra kế thừa Context() của người gọi, ảnh hưởng đến bộ lọc của warnings, decimal và các API khác với contextvars.

Nhiều thông báo lỗi hữu ích hơn trong Python 3.14

Trình thông dịch hiện đề xuất các từ khóa khi phát hiện một thuật ngữ tương tự với từ khóa Python, giúp nhanh chóng phát hiện lỗi chính tả. Các trường hợp như viết "pritn" thay vì "print" đã được sửa bằng các gợi ý trực tiếp, mặc dù không phải tất cả các biến thể đều được hỗ trợ.

Có những thông điệp cụ thể cho elif sau một elsevà trong các biểu thức điều kiện, nó chỉ ra nơi thiếu expression nếu bạn đặt một câu sau else o pass/break/continue trước if. Các lỗi do chuỗi đóng không đúng cách và tiền tố không tương thích trong chuỗi cũng được tinh chỉnh..

Cải tiến hơn nữa: thông báo rõ ràng hơn khi sử dụng as với các mục tiêu không tương thích trong các lần nhập, ngoại trừ việc khớp mẫu; chi tiết khi cố gắng đưa một đối tượng không thể băm vào dict o set; và thông báo khi bạn nhập trình quản lý ngữ cảnh đồng bộ với async with hoặc ngược lại. Mọi thứ đều được cộng lại để người phiên dịch có thể cho bạn biết cái gì, ở đâu và tại sao.

Nén hiện đại trong stdlib: PEP 784 và Zstandard

Gói hàng đã ra đời compression, tái xuất khẩu lzma, bz2, gzip y zlib như compression.lzma, compression.bz2, compression.gzip y compression.zlib. Những tên mới này là tuyến đường được ưa chuộng kể từ phiên bản 3.14, mặc dù các tuyến đường cổ điển hiện vẫn chưa bị loại bỏ..

Ngôi sao là compression.zstd, hỗ trợ gốc cho Zstandard với các ràng buộc với thư viện zstd của Meta. Bạn có được API nhanh chóng và hiệu quả, cũng như hỗ trợ trực tiếp cho các tệp Zstandard trong tarfile, zipfile y shutil, không cần cài đặt các gói bên ngoài.

Tự vấn Asyncio từ dòng lệnh

Bây giờ bạn có thể kiểm tra các tiến trình Python đang chạy với các tác vụ không đồng bộ bằng cách sử dụng python -m asyncio ps PID y python -m asyncio pstree PID. Lệnh con ps hiển thị một bảng phẳng các tác vụ, tên và ngăn xếp; pstree tạo ra một cây lệnh gọi không đồng bộ..

Công cụ này đặc biệt hữu ích trong các chương trình dài hoặc bị tắc nghẽn, giúp phát hiện điểm nghẽn, các tác vụ đang chờ và mối quan hệ giữa các coroutine. Nếu có chu kỳ trong đồ thị chờ, công cụ sẽ phát hiện chúng và liệt kê các đường dẫn gây ra vấn đề.

Kiểm soát cảnh báo đồng thời trong Python 3.14

warnings.catch_warnings Bạn có thể sử dụng biến ngữ cảnh cho bộ lọc cảnh báo nếu bạn bật cờ context_aware_warnings thông qua -X hoặc biến môi trường. Theo cách này, việc xử lý cảnh báo có thể dự đoán được khi bạn kết hợp các luồng hoặc tác vụ không đồng bộ và chúng không chồng chéo lên nhau..

Trải nghiệm người dùng Python 3.14: Console, Argparse, UnitTest và nhiều hơn nữa

Những người đã sử dụng phiên bản 3.14 làm phiên bản chính trong vài tháng qua đánh giá cao những cải tiến trong sử dụng hàng ngày: tô sáng cú pháp trong REPL và PDB, các ví dụ hỗ trợ Python 3 trong Kodi , trợ giúp tốt hơn trong argparse và các thông báo thân thiện hơn với người dùng trong unittest. Những chi tiết này giúp giảm bớt khó khăn và giúp bạn không cần phải vào trình soạn thảo để tìm ra lỗi.

Bảng điều khiển tương tác đề xuất các bản sửa lỗi cho lỗi đánh máy thông thường, ví dụ như lỗi "in" cổ điển hiện dẫn bạn đến print. Ngoài ra còn có tính năng tự động hoàn thành nhập thông minh hơn, giúp bạn khám phá các mô-đun mà không cần rời khỏi lời nhắc..

Các tiện ích rất thực tế xuất hiện trong stdlib: các phương thức sao chép và di chuyển trong pathlib tránh kéo shutil đối với những điều cơ bản, một date.strptime trực tiếp mà không cần phải đi qua datetime.strptime().date()và UUID v7, kết hợp tính ngẫu nhiên với tính sắp xếp theo thời gian. Các phím tắt nhỏ, tác động lớn đến các tập lệnh và công cụ nội bộ.

argparse sẽ thêm các gợi ý khi bạn mắc lỗi trong lựa chọn , giúp tiết kiệm thời gian khi gỡ lỗi giao diện dòng lệnh; và đúng vậy, t-string đang bắt đầu hình thành một hệ sinh thái nhỏ gồm các thư viện tận dụng chúng cho các mẫu bảo mật. Nếu bạn làm việc với các chuỗi phức tạp hoặc dữ liệu đầu vào của người dùng, bạn sẽ nhận thấy sự khác biệt.

Tính song song, ít bị chặn hơn và không còn bất ngờ với các tiến trình

Một số thay đổi nhằm mục đích giảm hiện tượng tắc nghẽn luồng: với các trình thông dịch con trong thư viện chuẩn và sự phát triển của chế độ không có GIL, có nhiều tùy chọn hơn để cân bằng tải mà không rơi vào tình trạng xung đột. Đối với các dịch vụ và thư viện có các tác vụ song song, điều này dẫn đến sự cải thiện đáng kể về hiệu suất.

Hành vi mặc định khi tạo nhiều tiến trình cũng thay đổi: `forkserver` được ưu tiên hơn ` fork` , điều này giúp giảm thiểu tình trạng tắc nghẽn khó nhận biết và làm cho các lỗi trong các kịch bản đa xử lý dễ hiểu hơn. Nói một cách thực tế: ít tiến trình "zombie" khó tái hiện hơn và chẩn đoán rõ ràng hơn.

Lịch phát hành và thời gian hoàn thiện của Python 3.14

Trong chu kỳ phát hành 3.14, nhóm Python đã công bố một số phiên bản alpha, bao gồm Alpha 5, một trong bảy phiên bản tiền beta được thiết kế để thử nghiệm các tính năng mới, sửa lỗi và tinh chỉnh quy trình phát hành. Giai đoạn beta bắt đầu vào ngày 6 tháng 5 năm 2025, mà không giới thiệu bất kỳ tính năng mới nào, và cho phép điều chỉnh cho đến khi phiên bản ứng cử viên phát hành vào ngày 22 tháng 7.

Như thường lệ trong giai đoạn tiền phát hành, không nên sử dụng các phiên bản tiền phát hành trong môi trường sản xuất. Tài liệu chính thức duy trì lịch phát hành trực tiếp (PEP 745), trình theo dõi lỗi trên GitHub và hướng dẫn đóng góp thông qua Python Software Foundation. Nếu bạn tìm thấy lỗi, tài liệu do Sphinx tạo ra và các liên kết báo cáo sẽ giúp bạn dễ dàng mở và theo dõi lỗi đó.

Một cái nháy mắt về số: 3.14 và Năm Tỵ

Sự trùng hợp giữa số phiên bản và các phép tính gần đúng lịch sử của pi (3.14) đã dẫn đến không ít trò đùa trong cộng đồng, đặc biệt là trong năm âm lịch có năm Rắn. Từ Lưu Tâm đến Tổ Trùng Chi, nỗi ám ảnh về việc xấp xỉ pi gần như lâu đời như nỗi ám ảnh về việc tối ưu hóa các bộ lặp.

Ngoài câu chuyện minh họa, phiên bản này còn tri ân nỗ lực chung của hàng trăm tình nguyện viên và công ty đã đóng góp chuyên môn kỹ thuật. PSF, với tư cách là một tổ chức phi lợi nhuận, mời bạn tham gia, quyên góp và xem xét lịch sử cũng như các giấy phép hỗ trợ tài liệu và ví dụ.

Tài liệu đã được cập nhật liên tục cho đến gần đây, với các ghi chú chỉnh sửa và quá trình biên dịch lại tự động bằng Sphinx. Nếu bạn gặp phải hành vi không mong muốn, hãy kiểm tra nhật ký thay đổi và phần "Có gì mới" để tìm bất kỳ bản cập nhật gần đây nào có thể giải thích cho sự thay đổi đó.

Nhìn chung, Python 3.14 cải thiện trải nghiệm hàng ngày đồng thời đặt nền móng cho tương lai: khả năng xử lý song song thực sự với ít trở ngại hơn, các mẫu an toàn và dễ hiểu, gỡ lỗi không bị cản trở và các công cụ giải thích lỗi tốt hơn. Nếu bạn đang sử dụng phiên bản 3.13, bạn sẽ nhận thấy những thay đổi nhỏ và các khả năng mới; nếu bạn chưa cập nhật trong vài phiên bản, tổng hợp các cải tiến sẽ khiến việc nâng cấp trở nên đáng giá.

Kodi 22 Piers
Bài viết liên quan:
Kodi 22 Piers: Có gì mới, Tải xuống và Những điều mong đợi từ bản Alpha

Thêm vào danh sách nguồn ưu tiên trên Google.