Những cải tiến đáng giá của Python 3.12

Trong hầu hết các bảng xếp hạng ngôn ngữ lập trình, Python luôn có mặt trong top đầu, thậm chí là đứng đầu nhờ sự hiệu quả và tối ưu của nó. Với những phát triển nhanh của công nghệ hiện nay, nhất là trong các lĩnh vực xử lý dữ liệu lớn Big Data hay trí tuệ nhân tạo AI thì bản thân Python cũng luôn đối mặt với những thách thức cần thay đổi nhằm tăng tốc độ và hiệu quả. Mới đây ngày 24/5/2023 phiên bản Python 3.12.0b1 được phát hành với nhiều cải tiến đáng giá mang tính cách mạng trong việc tối ưu hóa của ngôn ngữ lập trình. Bài viết hôm nay chúng ta cùng nhau tìm hiểu những tính năng mới trong phiên bản Python 3.12 này nhé.

Ngôn ngữ lập trình Python

Python là một ngôn ngữ lập trình bậc cao được phát triển với mục đích lập trình đa năng cùng thiết kế dễ đọc, dễ học và dễ nhớ. Được xuất hiện lần đầu vào năm 1991, trải qua hơn 30 năm thì Python luôn được xếp hạng vào những ngôn ngữ lập trình phổ biến nhất.

Ngôn ngữ lập trình Python

Python là một ngôn ngữ lập trình đa mẫu hình, lập trình hướng đối tượng và lập trình cấu trúc được hỗ trợ hoàn toàn, và nhiều tính năng của nó cũng hỗ trợ lập trình hàm và lập trình hướng khía cạnh. Python hiện nay hỗ trợ hầu hết các nền tảng hệ điều hành phổ biến từ Windows, Mac OS hay Linux. Nhờ những tính chất trên cùng với sự hỗ trợ đóng góp đến từ cộng đồng với các thư viện đa dạng, Python được ứng dụng trong nhiều lĩnh vực, nhất là trong các ngành phát triển trí tuệ nhân tạo AI hay xử lý dữ liệu lớn Big Data.

Python version 3.12

Python version 3.12

Python 3.0 được ra mắt ngày 3/12/2008; là một phiên bản lớn không tương thích ngược hoàn toàn với việc nhiều tính năng được chuyển mã ngược về loạt phiên bản Python 2.6.x và 2.7.x. Cũng vì thế mà hiện nay, Python vẫn duy trì hỗ trợ cả 2 phiên bản 3.x và 2.x; nhiều ứng dụng cũng tương thích với phiên bản Python 2.x.

Python 3.12 sẽ là phiên bản được dự kiến phát hành vào ngày 31/7/2023 sắp tới; và mới đây nhất ngày 22/5/2023 phiên bản beta thứ nhất với mã hiệu là 3.12.0b1 được giới thiệu với nhiều tính năng mang tính cách mạng trong việc tối ưu hóa ngôn ngữ, hứa hẹn triển khai nhanh hơn và hiệu quả hơn. Cùng điểm qua các tính năng mới đáng giá trên Python 3.12 này nhé:

Thông báo lỗi tốt hơn

Việc thông báo lỗi trên Python trong những phiên bản gần đây đã không chỉ dừng ở việc chỉ rõ chính xác vị trí lỗi (bao gồm dòng code, vị trí trên dòng) mà còn chi tiết hơn khi chỉ ra những đề xuất về những gì có thể sai trong đoạn code trên. Với phiên bản Python 3.12, thông báo lỗi còn có những cải tiến bổ sung như:

  • Đề xuất được module bị import thiếu, bao gồm các module từ thư viện chuẩn của Python
  • Đề xuất tốt hơn phương án xử lý khi code của bạn gặp lỗi cú pháp phổ biến khi nhập
  • Đề xuất NameError bao gồm cả thể hiện self của lớp

  Flask python là gì? - Những điều cần biết

  Python và cách tiết kiệm dung lượng cho phần mềm nhúng

Hỗ trợ cho Linux perf profiler

Linux perf (tiện ích kiểm soát không gian người dùng) là một công cụ phân tích hiệu suất trong Linux. Với những phiên bản trước đây, Python cho phép perf hoạt động và trả về thông tin những gì đang xảy ra ở level C trong Python Runtime. Version Python 3.12 kích hoạt chế độ opt-in (chế độ chủ động nhận thông tin từ hệ thống) để cho phép perf thu thập thông tin chi tiết về các chương trình Python. Việc chọn tham gia hay không có thể được thực hiện trong khai báo môi trường (environment) hoặc trực tiếp trong chương trình với function sys.activate_stack_trampoline.

Tham khảo Job HOT Python Developer Ho Chi Minh hấp dẫn trên TopDev

Khả năng giám sát và gỡ lỗi nhanh hơn

Thông thường để giám sát hay gỡ lỗi trong chương trình Python thì bạn cần đính kèm trình gỡ lỗi (debugger), khiến cho hiệu suất chương trình của bạn bị ảnh hưởng, chạy chậm đi ở toàn chương trình một cách không cần thiết.

Tiêu chuẩn của phiên bản mới bổ sung các hooks để có thể đính kèm phần gỡ lỗi hay giám sát vào chương trình với điểm bắt đầu và kết thúc; giúp giảm bớt được chi phí khi thực hiện các công việc này và không làm ảnh hưởng nhiều đến hiệu suất chương trình.

Hỗ trợ phương thức đặc biệt với giao thức bộ đệm

Dunder method là các phương thức đặc biệt mà trong Python tự động gọi, được bắt đầu và kết thúc bằng dấu gạch dưới kép (__). Việc gọi các phương thức này không được thực hiện trực tiếp mà xảy ra trong nội bộ lớp trên một hành động nhất định. Python 3.12 triển khai các phương thức dunder mới cho các đối tượng cho phép mã Python hoạt động với giao thức bộ đệm, thay vì việc trước đây phải viết các đối tượng đó bằng C. Phương thức __buffer__ có thể được sử dụng cho mã cấp phát bộ nhớ mới hay truy cập bộ nhớ hiện có.

Cải tiến khả năng gợi ý code khi đánh máy

Từ phiên bản 3.5 thì Python đã cho phép các công cụ linting phát hiện trước được nhiều lỗi ngay lúc nhập để cảnh báo hay gợi ý code. Với phiên bản mới lần này bổ sung thêm các tính năng bao quát phạm vi sử dụng rộng hơn và chi tiết hơn.

Cải thiện hiệu suất

Python 3.12 mang lại một số cải thiện về mặt hiệu suất đáng chú ý như sau:

  • Comprehension inlining: Comprehension là một cú pháp cho phép bạn nhanh chóng tạo danh sách hay tập hợp; trong Python 3.12 nó có thể tạo một cách nội tuyến (inline) thay vì tạo các đối tượng tạm thời. Điều này giúp tăng tốc độ lên khoảng 11% so với trước.
  • Immortal objects: Các đối tượng bất tử trong Python là những đối tượng không bao giờ bị thay đổi số lượng tham chiếu. Về lâu dài, nó giúp việc triển khai thay đổi quy mô đa lõi dễ dàng hơn và triển khai các tối ưu hóa khác.
  • Smaller object sizes: Kích thước cơ sở của 1 đối tượng Python hiện tại là 208 bytes; kể từ phiên bản Python 3.12 sẽ được tái cấu trúc cho nhỏ hơn 1 nửa, chỉ còn 96 bytes
  • Subinterpreters: trình thông dịch phụ tạo khả năng có nhiều phiên bản trình thông dịch chạy song song trong một quy trình Python. Đây là một bước tiến lớn hướng tới tính song song (Parallelism) tốt hơn trong Python

Kết bài

Python là một ngôn ngữ lập trình năng động, luôn phải đối mặt với những thách thức trong việc tăng tốc độ và hiệu quả. Với những cải tiến trong phiên bản Python 3.12 sắp tới, tương lai của Python hứa hẹn sẽ triển khai nhanh hơn và hiệu quả hơn. Hy vọng bài viết này mang lại cho bạn những thông tin hữu ích và hẹn gặp lại các bạn trong các bài viết tiếp theo của mình.

Tác giả: Phạm Minh Khoa

Bài viết liên quan

Khởi Đầu Dự Án Python Như Thế Nào Để Thuận Tiện Phát Triển Lên

Bài viết được sự cho phép của tác giả Nguyễn Hồng Quân Thỉnh thoảng mình có mối duyên ghé mắt qua các dự án Python, thấy cách sắp đặt vẫn còn chuệch choạc, không có lợi lắm cho việc phát triển tiếp diễn. Nên sau đây mình chia sẻ một số cách thức, công cụ, thư viện mà bạn nên chuẩn bị từ đầu, để công việc sau đó trở nên thoải mái hơn. Cách sắp đặt này có thể coi là chuẩn trong những năm 2020 này (nhưng có thể trở thành lạc hậu sau 5 năm nữa). 1. Quản lý các gói phụ thuộc Gói phụ thuộc (dependency) là các thư viện / công cụ bên ngoài mà dự án của bạn cần. Các gói này phải được cài trước khi phần mềm của bạn có thể chạy. Ví dụ bạn làm về khoa học dữ liệu thì sẽ cần NumPy, làm web thì sẽ cần Django v.v... Việc một [...]

Tuple Python là gì? Tìm hiểu về tuple python

Với anh em nào chưa biết xài Tuple, bài viết này giúp đỡ được, với anh em nào đã xài Tuple và quên té cái giống và khác với List, đọc bài này cũng ổn. Nói chung là bài viết Tuple Python này dành cho mọi người, mọi trình độ. Đọc vui anh em nhớ ủng hộ nha!. Viết khá cụ thể, giống, khác, ví dụ ví dại rõ ràng đầy đủ. Bắt đầu ngay thôi nào! 1. Tuple là gì? Bắt đầu với đặc sản là lướt qua định nghĩa. A Tuple is also a sequence data type that can contain elements of different data types, but these are immutable in nature. In other words, a tuple is a collection of Python objects separated by commas. The tuple is faster than the list because of static in nature. Tuple là kiểu dữ liệu chuỗi bao gồm nhiều các thành phần có kiểu dữ liệu khác nhau, nhưng nó là không thể thay đổi được. Nói một các khác, tuple là một object Collection phân cách nhau bằng dấu phẩy. Tuple nhanh hơn List cũng ở chỗ này, [...]

Tạo kho lưu cho các gói thư viện Python

Bài viết được sự cho phép của tác giả Nguyễn Hồng Quân Python là ngôn ngữ chính cho hệ thống backend của AgriConnect. Với đội ngũ giàu kinh nghiệm về Python, luôn đẩy sự khai thác, "bóc lột" Python đến mức cao nữa, cao nữa, nên quá trình vận hành của AgriConnect thường dẫn đến những nhu cầu "không giống ai". Một trong số đó là nhu cầu dựng một kho chứa gói thư viện Python "tại nhà". Bài dưới đây xin chia sẻ kinh nghiệm như thế. Khi hệ thống của AgriConnect vận hành, tác vụ cài đặt các gói thư viện Python được thực hiện lặp đi lặp lại rất nhiều lần. Chúng đến từ: Hệ thống chạy test tự động, kích hoạt mỗi khi có code mới được đẩy lên Git. Việc deploy bản cập nhật đến các server nội bộ đặt rải rác ở các trang trại khách hàng. Đa số các máy mà quá trình cài đặt thư viện Python diễ [...]

Top IT Jobs hot dành riêng cho Top Developers tại TopDev!