นวัตกรรมที่น่าสนใจที่สุด:
- นิพจน์ที่ได้รับมอบหมาย:
ตัวดำเนินการใหม่ := ช่วยให้คุณสามารถกำหนดค่าให้กับตัวแปรภายในนิพจน์ได้ ตัวอย่างเช่น:
ถ้า (n := len(a)) > 10:
print(f"รายการยาวเกินไป ({n} องค์ประกอบ คาดว่า <= 10)") - อาร์กิวเมนต์เฉพาะตำแหน่ง:
ตอนนี้คุณสามารถระบุได้ว่าพารามิเตอร์ฟังก์ชันใดสามารถส่งผ่านไวยากรณ์อาร์กิวเมนต์ที่มีชื่อและพารามิเตอร์ใดไม่ผ่าน ตัวอย่าง:
def f(a, b, /, c, d, *, e, f):
พิมพ์ (ก, ข, ค, ง, อี, ฉ)f(10, 20, 30, d=40, e=50, f=60) # ตกลง
f(10, b=20, c=30, d=40, e=50, f=60) # error, `b` ไม่สามารถเป็นอาร์กิวเมนต์ที่มีชื่อได้
f(10, 20, 30, 40, 50, f=60) # ข้อผิดพลาด `e` ต้องเป็นอาร์กิวเมนต์ที่มีชื่อการเปลี่ยนแปลงนี้ทำให้นักพัฒนามีวิธีในการปกป้องผู้ใช้ API ของตนจากการเปลี่ยนแปลงชื่ออาร์กิวเมนต์ของฟังก์ชัน
- รองรับ f-strings = สำหรับการแสดงออกและการดีบักด้วยตนเอง:
เพิ่มน้ำตาลเพื่อทำให้การดีบัก/บันทึกข้อความง่ายขึ้น
n = 42
พิมพ์ (f'สวัสดีชาวโลก {n=}.')
# จะพิมพ์ว่า "สวัสดีชาวโลก n=42" - แก้ไขคำหลักดำเนินการต่อในบล็อกสุดท้าย (ก่อนหน้านี้ใช้งานไม่ได้)
อื่น ๆ :
- คุณสามารถระบุเส้นทางไปยังแคช bytecode แทนค่าเริ่มต้น __pycache__ ได้อย่างชัดเจน
- รุ่นแก้ไขข้อบกพร่องและรุ่นวางจำหน่ายใช้ ABI เดียวกัน
ที่มา: linux.org.ru