Python 3.7

ฟีเจอร์ใหม่:

ฟีเจอร์

สถานะ

PEP 538

การบังคับ C locale เดิมให้ใช้ locale ที่อิงกับ UTF-8

PEP 539

C-API ใหม่สำหรับ Thread-Local Storage ใน CPython

PEP 540

โหมด UTF-8

PEP 552

Deterministic pyc

PEP 553

breakpoint() บิวต์อิน

PEP 557

Data Classes

PEP 560

การรองรับหลักสำหรับโมดูล typing และ generic types

PEP 562

__getattr__ และ __dir__ ของโมดูล

บางส่วน

PEP 563

การประเมิน Annotation แบบเลื่อนเวลา

PEP 564

ฟังก์ชันเวลาที่มีความละเอียดระดับนาโนวินาที

บางส่วน [1]

PEP 565

แสดง DeprecationWarning ใน __main__

PEP 567

Context Variables

การเปลี่ยนแปลงภาษาอื่นๆ:

async และ await เป็นคีย์เวิร์ดสงวนแล้ว

สมบูรณ์

อ็อบเจ็กต์ dict ต้องรักษาลำดับการแทรก

ขณะนี้สามารถส่งอาร์กิวเมนต์มากกว่า 255 ตัวไปยังฟังก์ชันได้ และฟังก์ชันสามารถมีพารามิเตอร์มากกว่า 255 ตัวได้

bytes.fromhex() และ bytearray.fromhex() ขณะนี้ละเว้น ASCII whitespace ทั้งหมด ไม่ใช่เฉพาะช่องว่าง

str, bytes และ bytearray ได้รับการรองรับเมธอด isascii() ใหม่ ซึ่งสามารถใช้ทดสอบว่าสตริงหรือ bytes มีเฉพาะอักขระ ASCII หรือไม่

ImportError ขณะนี้แสดงชื่อโมดูลและเส้นทาง __file__ ของโมดูลเมื่อ from ... import ... ล้มเหลว

ขณะนี้รองรับการนำเข้าแบบวงกลมที่เกี่ยวข้องกับ absolute imports พร้อมการผูก submodule กับชื่อ

object.__format__(x, '') ขณะนี้เทียบเท่ากับ str(x) แทนที่จะเป็น format(str(self), '')

เพื่อรองรับการสร้าง stack trace แบบไดนามิกได้ดีขึ้น types.TracebackType ขณะนี้สามารถสร้างอินสแตนซ์จากโค้ด Python ได้ และ attribute tb_next บน traceback ขณะนี้สามารถเขียนได้

เมื่อใช้สวิตช์ -m ขณะนี้ sys.path[0] จะถูกขยายให้เป็นเส้นทางไดเรกทอรีเริ่มต้นแบบเต็มทันที แทนที่จะปล่อยให้เป็นไดเรกทอรีว่าง (ซึ่งอนุญาตให้นำเข้าจากไดเรกทอรีปัจจุบันเมื่อการนำเข้าเกิดขึ้น)

สามารถใช้ตัวเลือก -X importtime ใหม่หรือตัวแปรสภาพแวดล้อม PYTHONPROFILEIMPORTTIME เพื่อแสดงระยะเวลาของการนำเข้าแต่ละโมดูล

การเปลี่ยนแปลงในโมดูลบิวต์อิน:

asyncio

มีมากเกินไปที่จะระบุ

gc

ฟีเจอร์ใหม่ได้แก่ gc.freeze(), gc.unfreeze(), gc-get_freeze_count

math

เพิ่ม math.remainder() เพื่อนำ IEEE 754-style remainder ไปใช้งาน

re

ฟีเจอร์การปรับปรุงหลายอย่างรวมถึงการรองรับการแยกสตริงว่างที่ดีขึ้น และการรองรับ copy สำหรับ expression ที่คอมไพล์แล้วและ match objects

sys

เพิ่ม sys.breakpointhook() และเพิ่ม sys.get(/set)_coroutine_origin_tracking_depth()

time

ส่วนใหญ่เป็นการอัปเดตเพื่อรองรับความละเอียดระดับนาโนวินาทีใน PEP564 ดูรายละเอียดด้านบน

หมายเหตุ