Phiên bản ổn định mới của Python 3.12 đã xuất hiện và đây là những tính năng mới của nó

Logo Python

Python là một ngôn ngữ lập trình cấp cao.

Sau một năm phát triển, Việc phát hành phiên bản ổn định đã được công bố và cũng là sự khởi đầu của giai đoạn thử nghiệm alpha của ngôn ngữ lập trình Python 3.12 và Python 3.13 (tương ứng). Người ta đề cập rằng nhánh Python 3.12 mới này sẽ được hỗ trợ trong một năm rưỡi, sau đó, trong ba năm rưỡi nữa, các bản sửa lỗi sẽ được tạo ra để loại bỏ các lỗ hổng.

Phiên bản mới của Python 3.12 được giới thiệu có những cải tiến trong tính linh hoạt của phân tích chuỗi f. Với sự cải tiến này bây giờ nhiều hạn chế có thể được bỏ qua một bên, vì ví dụ: bây giờ bạn có thể chứa bất kỳ biểu thức hợp lệ nào trong Python, bao gồm các biểu thức nhiều dòng, nhận xét, dấu gạch chéo ngược và chuỗi thoát Unicode. Ngoài ra, các chuỗi nội bộ hiện cho phép sử dụng lại các dấu ngoặc kép giống nhau, tức là dấu ngoặc kép hiện có thể được sử dụng lại bên trong mà không cần phải thay đổi thành dấu nháy đơn.

Ví dụ:

f"""{f'''{f'{f"{1+1}"}'}'''}"""

Bây giờ có thể lồng tùy ý:

f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"

Một trong những thay đổi nổi bật là hỗ trợ cho các trình thông dịch phụ bị cô lập và các khóa toàn cầu riêng biệt, nhằm mục đích tăng hiệu quả sử dụng tài nguyên trong các hệ thống đa lõi, vì đối với các trình thông dịch khác nhau trong một quy trình, CPython cho phép một số trình thông dịch chạy cùng lúc trong một quy trình. Hiện tại, tính năng này hiện chỉ khả dụng thông qua C-API (hỗ trợ API Python sẽ xuất hiện trong nhánh chính tiếp theo).

Ngoài ra, nó cũng được nhấn mạnh rằngNội dung thông tin của thông báo lỗi đã được tăng lên và phạm vi ngoại lệ đã được mở rộng, đưa ra các khuyến nghị để loại bỏ lỗi đánh máy. Ví dụ: các đề xuất nhập mô-đun thư viện tiêu chuẩn bị lãng quên và đề xuất thêm tiền tố “tự” hiện đã được hiển thị.

Đã thêm khả năng sử dụng giao thức đệm trong mã Python. Các lớp cung cấp phương thức "__buffer__()" hiện có thể được sử dụng làm loại hoạt động trực tiếp trên dữ liệu nhị phân trong bộ nhớ.

Các mô-đun sys.monitoring được đề xuất để gỡ lỗi và lập hồ sơ, cho phép bạn giám sát các sự kiện trong CPython như lệnh gọi, trả về hàm, thực thi các dòng mã tùy ý, ngoại lệ và chuyển đổi với chi phí tối thiểu.

Trình thông dịch triển khai hỗ trợ cho hệ thống con hiệu năng nhân Linux, cho phép xác định tên hàm Python khi lập hồ sơ bằng tiện ích hiệu suất (trước đây, chỉ tên hàm C được xác định theo dấu vết).

Về cải thiện hiệu suất, người ta đề cập rằng tiếp tục tối ưu hóa, với cái gì Tổng mức tăng hiệu suất ước tính khoảng 5% đã đạt được., nó cũng đã được thêm vào hỗ trợ thử nghiệm cho trình tối ưu hóa nhị phân BOLT vào quá trình xây dựng, tăng hiệu suất thêm 1-5%, trong khi hiệu suất của gói asyncio đã được cải thiện đáng kể (một số thử nghiệm cho thấy tốc độ tăng 75%).

Việc mở rộng nội tuyến của khả năng hiểu danh sách đã được triển khai, giúp tăng tốc độ làm việc với khả năng hiểu danh sách lên tới hai lần (đối với mã sử dụng tích cực khả năng hiểu danh sách, thử nghiệm cho thấy hiệu suất tổng thể tăng 11%).

Để cải thiện bảo mật, triển khai tích hợp của Các thuật toán SHA1, SHA3, SHA2-384, SHA2-512 và MD5 trong hashlib đã được thay thế với các tùy chọn được xác minh chính thức từ dự án HACL* (các triển khai tích hợp chỉ được sử dụng nếu OpenSSL không có sẵn).

Của những thay đổi khác nổi bật:

  • Mô-đun này đã mở rộng hỗ trợ cho Windows.
  • Python thực hiện bảo vệ chống tràn ngăn xếp.
    Việc tạo lớp asyncio.Task đã được đẩy nhanh.
  • Kích thước của các đối tượng Unicode đã giảm từ 8 xuống còn 16 byte.
  • Các thao tác với biểu thức chính quy re.sub(), re.subn() và re.Pattern đã được tăng tốc.
  • Việc chạy kiểm tra isinstance() cho một số giao thức đã được tăng tốc từ 2 đến 20 lần.
  • Đáng chú ý (trong một số thử nghiệm lên tới 64%) các hàm tokenize.tokenize() và tokenize.generate_tokens() đã được tăng tốc.
  • Tải thuộc tính và gọi phương thức super() đã được tăng tốc.
  • Một cú pháp chú thích kiểu mới, nhỏ gọn hơn đã được đề xuất cho các lớp và hàm chung.
  • Mô-đun trình duyệt web không còn hỗ trợ các trình duyệt cũ hơn bao gồm Grail, Khảm, Netscape, Galeon, Skipstone, Iceape, Firebird và Firefox cho đến phiên bản 36.
  • Để chuẩn bị cho việc tối ưu hóa trong tương lai, cách biểu diễn bên trong của các số nguyên đã được thay đổi.

Cuối cùng nhưng không kém phần quan trọng, như đã đề cập, quá trình thử nghiệm alpha của Python 3.13 đã bắt đầu, trong đó chế độ biên dịch xuất hiện CPython không có khóa thông dịch toàn cầu (GIL, Khóa phiên dịch toàn cầu).

Các chi nhánh Python 3.13 sẽ ở dạng alpha trong bảy tháng, trong thời gian đó các tính năng mới sẽ được thêm vào và các lỗi được sửa theo lịch trình phát triển mới, công việc trên nhánh mới bắt đầu năm tháng trước khi phát hành nhánh trước đó và vào thời điểm phiên bản tiếp theo đạt đến giai đoạn thử nghiệm alpha.

Sau đó, các phiên bản beta sẽ được thử nghiệm trong ba tháng, trong thời gian đó việc bổ sung các tính năng mới sẽ bị cấm và mọi sự chú ý sẽ được tập trung vào việc sửa lỗi. Trong hai tháng cuối cùng trước khi phát hành, chi nhánh sẽ ở giai đoạn ứng cử viên phát hành, nơi sẽ diễn ra quá trình ổn định cuối cùng.

Cuối cùng là có 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 theo dõi.


Để 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.