Python 3.10¶
Python 3.10.0 (รุ่นสมบูรณ์) เผยแพร่เมื่อวันที่ 4 ตุลาคม 2021 ลักษณะเด่นของ 3.10 ถูกกำหนดไว้ใน PEP 619 และคำอธิบายโดยละเอียดของการเปลี่ยนแปลงสามารถดูได้ที่ What's New in Python 3.10
ลักษณะไวยากรณ์ใหม่ |
สถานะ |
|
การจับคู่รูปแบบโครงสร้าง: ข้อกำหนด |
||
การจับคู่รูปแบบโครงสร้าง: แรงจูงใจและเหตุผล |
||
การจับคู่รูปแบบโครงสร้าง: บทช่วยสอน |
||
ตัวจัดการบริบทแบบมีวงเล็บได้รับอนุญาตอย่างเป็นทางการแล้ว |
||
ลักษณะใหม่ในไลบรารีมาตรฐาน |
||
เพิ่มการตรวจสอบความยาวแบบเลือกใช้ใน zip |
||
การปรับปรุงตัวแปลภาษา |
||
หมายเลขบรรทัดที่แม่นยำสำหรับการดีบักและเครื่องมืออื่น ๆ |
||
ลักษณะการกำหนดชนิดข้อมูลใหม่ |
||
อนุญาตให้เขียนชนิดรวม (union type) เป็น X | Y |
||
นามแฝงชนิดข้อมูลแบบชัดเจน |
||
ตัวแปรข้อกำหนดพารามิเตอร์ |
||
การเลิกใช้งาน การลบออก หรือข้อจำกัดที่สำคัญ |
||
กำหนดให้ใช้ OpenSSL 1.1.1 หรือใหม่กว่า |
||
เลิกใช้งานโมดูล distutils |
ไม่เกี่ยวข้อง |
|
เลิกใช้งานและเตรียมลบสมาชิก wstr ใน PyUnicodeObject |
ไม่เกี่ยวข้อง |
|
ลบ Py_UNICODE encoder APIs |
ไม่เกี่ยวข้อง |
|
เพิ่ม EncodingWarning แบบเลือกใช้ |
||
การเปลี่ยนแปลงภาษาอื่น ๆ:
ชนิด |
|
วิวที่ส่งคืนโดย |
|
PEP 618: ฟังก์ชัน |
|
ฟังก์ชัน built-in และฟังก์ชันส่วนขยายที่รับอาร์กิวเมนต์จำนวนเต็มจะไม่รับ |
|
หาก |
|
ขณะนี้นิพจน์การกำหนดค่าสามารถใช้โดยไม่มีวงเล็บภายในลิเทอรัลเซตและ set comprehension รวมถึงในดัชนีลำดับ (แต่ไม่ใช่ slice) |
|
ฟังก์ชันมีแอตทริบิวต์ |
|
ฟังก์ชัน built-in ใหม่สองตัว -- |
|
เมธอดแบบสแตติก ( |
|
Annotations สำหรับเป้าหมายที่ซับซ้อน (ทุกอย่างนอกจากเป้าหมาย |
|
อ็อบเจกต์คลาสและโมดูลตอนนี้สร้าง dict ของ annotations ว่างเปล่าแบบ lazy เมื่อต้องการ dict ของ annotations จะถูกจัดเก็บใน |
|
Annotations ที่ประกอบด้วย |
|
การใช้ตัวแปรที่ไม่ถูกผูกค่า, |
|
แฮชของค่า NaN ทั้งชนิด |
|
จะเกิด |
|
ข้อยกเว้น |
การเปลี่ยนแปลงในโมดูล built-in:
เพิ่มเมธอด |
|
เมธอด |
|
เพิ่ม audit hooks สำหรับ |
|
โมดูล hashlib ต้องการ OpenSSL 1.1.1 หรือใหม่กว่า |
|
โมดูล hashlib มีการรองรับเบื้องต้นสำหรับ OpenSSL 3.0.0 |
|
การสำรองแบบ pure-Python ของ |
|
เพิ่มการรองรับ |
|
เพิ่มฟังก์ชันใหม่ |
|
เพิ่ม |
|
เพิ่ม |
|
เพิ่ม |
|
ข้อยกเว้น |
|
เพิ่มตัวเลือกในการสร้าง MPTCP sockets ด้วย |
|
เพิ่มตัวเลือก |
|
โมดูล ssl ต้องการ OpenSSL 1.1.1 หรือใหม่กว่า |
|
โมดูล ssl มีการรองรับเบื้องต้นสำหรับ OpenSSL 3.0.0 และตัวเลือกใหม่ |
|
ฟังก์ชันที่เลิกใช้และการใช้ค่าคงที่ที่เลิกใช้แล้วจะส่งผล |
|
โมดูล ssl ตอนนี้มีการตั้งค่าความปลอดภัยเริ่มต้นที่เข้มงวดยิ่งขึ้น cipher ที่ไม่มี forward secrecy หรือ SHA-1 MAC ถูกปิดใช้งานโดยค่าเริ่มต้น ระดับความปลอดภัย 2 ห้ามคีย์ RSA, DH และ ECC ที่อ่อนแอที่มีความปลอดภัยน้อยกว่า 112 บิต |
|
โปรโตคอลที่เลิกใช้งานแล้ว SSL 3.0, TLS 1.0 และ TLS 1.1 ไม่ได้รับการรองรับอย่างเป็นทางการอีกต่อไป Python ไม่ได้บล็อกโปรโตคอลเหล่านี้อย่างจริงจัง อย่างไรก็ตาม ตัวเลือก build ของ OpenSSL การกำหนดค่า distro แพตช์ของผู้จำหน่าย และชุด cipher อาจป้องกันการ handshake ที่สำเร็จ |
|
เพิ่มพารามิเตอร์ timeout ให้กับฟังก์ชัน |
|
โมดูล ssl ใช้ heap-types และการเริ่มต้นแบบหลายขั้นตอน |
|
แฟล็กการตรวจสอบใหม่ |
|
เพิ่มแอตทริบิวต์ |
|
เพิ่ม |
|
|
|
หมายเหตุ