Python 3.11 xuất hiện với các cải tiến về hiệu suất, thiết kế lại bộ nhớ đệm và hơn thế nữa

Python

Python là một ngôn ngữ lập trình thông dịch cấp cao với triết lý của nó là nhấn mạnh đến khả năng đọc được mã của nó.

Sau một năm phát triển, phiên bản mới của ngôn ngữ lập trình Python 3.11 đã được xuất bản, chi nhánh mới sẽ được hỗ trợ trong một năm rưỡi, sau đó các bản vá với các lỗ hổng sẽ được hình thành trong ba năm rưỡi nữa.

Đồng thời, thử nghiệm alpha của nhánh Python 3.12 đã bắt đầu (theo lịch trình phát triển mới, công việc trên một nhánh mới bắt đầu năm tháng trước khi phát hành nhánh trước đó và đạt đến giai đoạn thử nghiệm alpha vào thời điểm của phiên bản tiếp theo).

Nhánh Python 3.12 sẽ được phát hành alpha trong bảy tháng, trong đó các tính năng mới sẽ được thêm vào và sửa lỗi. Sau đó, thử nghiệm beta sẽ diễn ra trong ba tháng, trong đó việc bổ sung các tính năng mới sẽ bị cấm và sẽ tập trung toàn bộ vào việc sửa lỗi. Hai tháng cuối cùng trước khi ra mắt, chi nhánh sẽ ở trong giai đoạn ứng cử viên ra mắt, tại thời điểm đó, quá trình ổn định cuối cùng sẽ diễn ra.

Các tính năng mới chính của Python 3.11

Trong phiên bản mới này Công việc quan trọng đã được thực hiện để tối ưu hóa hiệu suất, vì nhánh mới bao gồm các thay đổi liên quan với khả năng tăng tốc và triển khai nội tuyến các lệnh gọi hàm, việc sử dụng trình thông dịch nhanh các hoạt động điển hình, cũng như các tối ưu hóa được chuẩn bị bởi các dự án Cinder và HotPy. Tùy thuộc vào loại tải, tốc độ thực thi mã tăng từ 10% đến 60%. Trung bình, hiệu suất khi vượt qua bộ thử nghiệm pyperformance tăng 25%.

Cơ chế bộ nhớ đệm đã được thiết kế lại của bytecode, giúp giảm 10-15% thời gian khởi động trình thông dịch. Các đối tượng có mã và mã bytecode hiện được cấp phát tĩnh bởi trình thông dịch, điều này có thể giúp loại bỏ các bước giải mã bytecode được tải xuống từ bộ đệm và chuyển đổi các đối tượng bằng mã để đặt chúng trong bộ nhớ heap.

Thêm hỗ trợ cho các nhóm ngoại lệ, cung cấp cho chương trình khả năng nâng cao và xử lý một số trường hợp ngoại lệ khác nhau cùng một lúc. Các loại ngoại lệ mới ExceptionGroup và BaseExceptionGroup được đề xuất để nhóm nhiều ngoại lệ lại với nhau và biểu thức "ngoại trừ *" được thêm vào để tách biệt các ngoại lệ khỏi một nhóm.

Đã thêm một loại LiteralString đặc biệt cô đơn quá có thể bao gồm các chuỗi chữ tương thích với loại LiteralString (nghĩa là, chuỗi trần và chuỗi kiểu LiteralString, nhưng không phải là chuỗi tùy ý hoặc hỗn hợp kiểu str). Kiểu LiteralString có thể được sử dụng để giới hạn việc truyền các đối số chuỗi cho các hàm, thay thế tùy ý các phần của chuỗi mà nó có thể dẫn đến lỗ hổng, ví dụ, khi tạo chuỗi cho các truy vấn SQL hoặc lệnh shell.

Ngoài ra, cũng khả năng đánh dấu các phần tử riêng lẻ của từ điển được cung cấp (TypedDict) với cờ Bắt buộc và Không bắt buộc để xác định các trường bắt buộc và tùy chọn (theo mặc định, tất cả các trường đã khai báo là bắt buộc nếu tham số tổng không được đặt thành Giả mạo).

Đã thêm @dataclass_transform class, method và function decorator, khi được chỉ định, trình kiểm tra kiểu tĩnh xử lý đối tượng như thể sử dụng trình trang trí @ dataclasses.dataclass.

Các thay đổi khác nổi bật trong phiên bản mới này:

  • Đã thêm khả năng sử dụng nhóm nguyên tử ((?>…)) Và lượng tử ghen tị (sở hữu) (* +, ++,? +, {M, n} +) trong biểu thức chính quy.
  • Loại TypeVarTuple đã được thêm vào, cho phép sử dụng các biến thể chung, không giống như TypeVar, không bao gồm một loại mà là một số loại tùy ý.
  • Thư viện chuẩn bao gồm mô-đun tomllib với các chức năng phân tích cú pháp định dạng TOML.
  • Phương thức add_note () đã được thêm vào lớp BaseException, cho phép đính kèm ghi chú văn bản vào ngoại lệ, ví dụ như để thêm thông tin ngữ cảnh không có sẵn tại thời điểm ngoại lệ được ném.
  • Một kiểu đặc biệt Tự đã được thêm vào để đại diện cho lớp riêng hiện tại. Tự có thể được sử dụng để chú thích các phương thức trả về một thể hiện của lớp của bạn theo cách đơn giản hơn so với sử dụng TypeVar.
  • Đã thêm tùy chọn dòng lệnh "-P" và biến môi trường PYTHONSAFEPATH để vô hiệu hóa kết nối tự động của các đường dẫn tệp có khả năng không an toàn tới sys.path.
  • Tiện ích py.exe dành cho nền tảng Windows đã được cải tiến đáng kể để hỗ trợ cú pháp "-V:". / "ngoài" - . ».
  • Nhiều macro C API đã được chuyển đổi thành các hàm nội tuyến thông thường hoặc tĩnh
  • Các mô-đun uu, cgi, pipe, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev và sunau đã không được dùng nữa và sẽ bị xóa khỏi Python. 3.13 phát hành.
  • Đã xóa các hàm PyUnicode_Encode *.
  • Lớp TaskGroup đã được thêm vào mô-đun asyncio với việc triển khai trình quản lý ngữ cảnh không đồng bộ chờ nhóm tác vụ hoàn thành.
  • Việc thêm nhiệm vụ vào một nhóm được thực hiện bằng phương thức create_task ().

Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết trong liên kết sau. 


Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.