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 และการเริ่มต้นแบบหลายขั้นตอน | |
แฟล็กการตรวจสอบใหม่ | |
เพิ่มแอตทริบิวต์ | |
เพิ่ม | |
| |
หมายเหตุ