Python 3.9¶
Python 3.9.0 (final) được phát hành vào ngày 5 tháng 10 năm 2020. Các tính năng cho 3.9 được định nghĩa trong PEP 596 và mô tả chi tiết về các thay đổi có thể tìm thấy trong What's New in Python 3.9
Tính năng |
Trạng thái |
|
Truy cập nhanh vào trạng thái module từ các phương thức của kiểu mở rộng C |
Không liên quan |
|
Toán tử hợp nhất được thêm vào dict |
Hoàn thành [1] |
|
Gợi ý kiểu generic trong các collection chuẩn |
||
Chú thích hàm và biến linh hoạt |
||
CPython áp dụng chu kỳ phát hành hàng năm. Thay vì hàng năm, nhắm tới chu kỳ phát hành hai tháng một lần |
Không liên quan |
|
Nới lỏng các hạn chế ngữ pháp về decorator |
||
Cơ sở dữ liệu múi giờ IANA bây giờ có mặt trong thư viện chuẩn trong module zoneinfo |
||
Các phương thức chuỗi để xóa tiền tố và hậu tố |
||
CPython bây giờ sử dụng một parser mới dựa trên PEG |
Không liên quan |
Các thay đổi ngôn ngữ khác:
__import__() bây giờ raise ImportError thay vì ValueError |
Hoàn thành |
Python bây giờ lấy đường dẫn tuyệt đối của tên tệp script được chỉ định trên dòng lệnh (ví dụ: python3 script.py): thuộc tính __file__ của module __main__ đã trở thành đường dẫn tuyệt đối, thay vì đường dẫn tương đối |
|
Theo mặc định, để đạt hiệu suất tốt nhất, đối số errors chỉ được kiểm tra tại lỗi mã hóa/giải mã đầu tiên và đối số encoding đôi khi bị bỏ qua đối với chuỗi rỗng |
|
"".replace("", s, n) bây giờ trả về s thay vì chuỗi rỗng cho tất cả n khác không. Bây giờ nó nhất quán với "".replace("", s) |
|
Bất kỳ biểu thức hợp lệ nào bây giờ đều có thể được sử dụng làm decorator. Trước đây, ngữ pháp bị hạn chế hơn nhiều |
|
Chạy song song aclose() / asend() / athrow() bây giờ bị cấm, và ag_running bây giờ phản ánh trạng thái chạy thực tế của async generator |
|
Các lỗi không mong đợi khi gọi phương thức __iter__ không còn bị che giấu bởi TypeError trong toán tử in và các hàm contains(), indexOf() và countOf() của module operator |
|
Biểu thức lambda không có dấu ngoặc đơn không còn có thể là phần biểu thức trong mệnh đề if trong comprehension và biểu thức generator |
Thay đổi đối với các module tích hợp:
Do lo ngại bảo mật đáng kể, tham số reuse_address của asyncio.loop.create_datagram_endpoint() không còn được hỗ trợ |
|
Đã thêm một coroutine mới shutdown_default_executor() lên lịch tắt executor mặc định chờ ThreadPoolExecutor đóng xong. Ngoài ra, asyncio.run() đã được cập nhật để sử dụng coroutine mới. |
|
Đã thêm asyncio.PidfdChildWatcher, một triển khai child watcher dành riêng cho Linux theo dõi file descriptor của tiến trình |
|
đã thêm một coroutine asyncio.to_thread() mới |
|
Khi hủy task do timeout, asyncio.wait_for() bây giờ sẽ chờ cho đến khi việc hủy hoàn tất cũng trong trường hợp timeout <= 0, giống như với các timeout dương |
|
asyncio bây giờ raise TyperError khi gọi các phương thức không tương thích với socket ssl.SSLSocket |
|
Garbage collection không chặn trên các đối tượng được hồi sinh |
|
Đã thêm hàm mới gc.is_finalized() để kiểm tra xem một đối tượng đã được garbage collector hoàn tất chưa |
|
Mở rộng hàm math.gcd() để xử lý nhiều đối số. Trước đây, nó chỉ hỗ trợ hai đối số |
|
Đã thêm math.lcm(): trả về bội số chung nhỏ nhất của các đối số được chỉ định |
|
Đã thêm math.nextafter(): trả về giá trị dấu phẩy động tiếp theo sau x hướng về y |
|
Đã thêm math.ulp(): trả về giá trị của bit ít có nghĩa nhất của một số thực |
|
Cung cấp os.pidfd_open() và os.P_PIDFD dành riêng cho Linux |
|
Hàm os.unsetenv() bây giờ cũng khả dụng trên Windows |
Hoàn thành |
Các hàm os.putenv() và os.unsetenv() bây giờ luôn khả dụng |
Hoàn thành |
Đã thêm hàm os.waitstatus_to_exitcode(): chuyển đổi trạng thái chờ thành mã thoát |
|
Đã thêm phương thức random.Random.randbytes mới: tạo các byte ngẫu nhiên |
|
Đã thêm thuộc tính sys.platlibdir mới: tên của thư mục thư viện theo nền tảng |
|
Trước đây, sys.stderr được đệm theo block khi không tương tác. Bây giờ stderr mặc định luôn đệm theo dòng |
|
Ghi chú