Python 3.7

Tính năng mới:

Tính năng

Trạng thái

PEP 538

Chuyển đổi locale C cũ sang locale dựa trên UTF-8

PEP 539

C-API mới cho Thread-Local Storage trong CPython

PEP 540

Chế độ UTF-8

PEP 552

pyc xác định

PEP 553

breakpoint() tích hợp sẵn

PEP 557

Lớp dữ liệu

PEP 560

Hỗ trợ cốt lõi cho module typing và các kiểu generic

PEP 562

__getattr____dir__ của module

Một phần

PEP 563

Đánh giá trì hoãn các chú thích

PEP 564

Hàm thời gian với độ phân giải nanosecond

Một phần [1]

PEP 565

Hiển thị DeprecationWarning trong __main__

PEP 567

Biến ngữ cảnh

Các thay đổi ngôn ngữ khác:

asyncawait bây giờ là các từ khóa dành riêng

Hoàn thành

Các đối tượng dict phải bảo toàn thứ tự chèn

Hơn 255 đối số có thể được truyền vào một hàm; một hàm bây giờ có thể có hơn 255 tham số

bytes.fromhex()bytearray.fromhex() bây giờ bỏ qua tất cả khoảng trắng ASCII, không chỉ dấu cách

str, bytes, và bytearray đã được thêm hỗ trợ cho phương thức isascii() mới, có thể được dùng để kiểm tra xem chuỗi hoặc bytes có chứa chỉ các ký tự ASCII hay không

ImportError bây giờ hiển thị tên module và đường dẫn __file__ của module khi from ... import ... thất bại

Các import vòng tròn liên quan đến absolute import với việc gán submodule cho một tên bây giờ được hỗ trợ

object.__format__(x, '') bây giờ tương đương với str(x) thay vì format(str(self), '')

Để hỗ trợ tốt hơn việc tạo động stack trace, types.TracebackType bây giờ có thể được khởi tạo từ mã Python, và thuộc tính tb_next trên các traceback bây giờ có thể ghi

Khi sử dụng switch -m, sys.path[0] bây giờ được mở rộng ngay lập tức thành đường dẫn thư mục bắt đầu đầy đủ, thay vì bị để trống (điều này cho phép import từ thư mục làm việc hiện tại vào thời điểm một import xảy ra)

Tùy chọn -X importtime mới hoặc biến môi trường PYTHONPROFILEIMPORTTIME có thể được sử dụng để hiển thị thời gian của từng lần import module

Thay đổi đối với các module tích hợp:

asyncio

Quá nhiều để liệt kê

gc

Các tính năng mới bao gồm gc.freeze(), gc.unfreeze(), gc-get_freeze_count

math

math.remainder() đã được thêm vào để triển khai phần dư theo kiểu IEEE 754

re

Một số tính năng cải tiến bao gồm hỗ trợ tốt hơn cho việc chia tách trên chuỗi rỗng và hỗ trợ sao chép cho các biểu thức đã biên dịch và đối tượng match

sys

sys.breakpointhook() đã được thêm vào. sys.get(/set)_coroutine_origin_tracking_depth() đã được thêm vào

time

Chủ yếu là các cập nhật để hỗ trợ độ phân giải nanosecond trong PEP564, xem ở trên

Ghi chú