30/09/2026 · VietTechies · Biên tập

Tại hội nghị Python Language Summit 2026, Michael J. Sullivan đã giới thiệu PEP 827, một đề xuất nhằm mang đến khả năng thao tác kiểu dữ liệu mạnh mẽ lấy cảm hứng từ các hành vi kiểu động trong những ngôn ngữ như TypeScript.
Các Nguyên Thủy Thao Tác Kiểu Dữ Liệu
PEP 827 giới thiệu một số nguyên thủy nền tảng cho hệ thống kiểu của Python, bao gồm kiểu điều kiện (conditional types), kiểu comprehension hỗ trợ bộ lọc tùy chọn, và kiểu thành viên (member types) cho phép truy cập danh sách các thành viên cùng thuộc tính tên và kiểu của chúng. Đề xuất này không thêm từ khóa mới và đi kèm một bản mẫu thử nghiệm dựa trên mypy.
Ứng dụng thực tế chính của đề xuất là tối ưu hóa các ứng dụng web CRUD, nơi mô hình cơ sở dữ liệu đòi hỏi nhiều biến thể cho các thao tác khác nhau. Thay vì duy trì thủ công các định nghĩa mô hình trùng lặp, lập trình viên có thể tạo các biến thể như view công khai, mô hình khởi tạo hoặc mô hình cập nhật trực tiếp từ một mô hình cơ sở.
Đánh Đổi Trong Lưu Trữ Chú Thích Runtime
Một trọng tâm lớn của đề xuất là xác định phương thức lưu trữ và đánh giá chú thích kiểu ở runtime, khi các thư viện như Pydantic hay FastAPI phụ thuộc rất nhiều vào thông tin kiểu runtime. Bản thảo sử dụng bộ đánh giá thông qua hàm __annotate__(), xem xét các phương án như dùng định dạng chuỗi của annotationlib hoặc kết hợp chuỗi với closure môi trường để đánh giá qua eval().
Trong các cuộc thảo luận, các nhà phát triển nòng cốt đã tranh luận về sự đánh đổi giữa bộ nhớ và hiệu năng tính toán giữa việc lưu chuỗi thô và đánh giá closure. Łukasz Langa gợi ý rằng việc nội lưu (interning) các chuỗi chú thích phổ biến bên trong __annotate__() có thể tiết kiệm bộ nhớ mà không ảnh hưởng đáng kể đến hiệu năng.
Tính Turing-Complete Có Chủ Ý Và Lo Ngại Cú Pháp
Giải quyết các lo ngại về độ phức tạp của hệ thống kiểu, Sullivan lưu ý rằng việc chấp nhận đề xuất sẽ chuyển hệ thống kiểu của Python từ vô tình đạt tính Turing-complete sang đạt tính Turing-complete có chủ ý, tương tự như các hành vi generic trong Java. Các nhà phát triển cũng thảo luận về tác động thẩm mỹ của các kiểu phức tạp đối với người dùng thông thường.
Łukasz Langa và David Hewitt lo ngại cú pháp phức tạp có thể gây quá tải cho lập trình viên khi kiểm tra kiểu trả về của API, tương tự như trải nghiệm trong hệ sinh thái TypeScript. Đồng tác giả Yury Selivanov thừa nhận rằng dù các phép biến đổi kiểu nâng cao mang lại độ phức tạp, chúng là cần thiết để tương thích với tính biểu đạt runtime của Python, và sẽ được hỗ trợ bởi các cải tiến trong IDE cũng như language server.
Ảnh minh họa do AI tạo, không phải ảnh tư liệu.
Nguồn: PEP 827: Type Manipulation (Python Language Summit 2026)
