Python 3.5

ด้านล่างนี้คือรายการ PEP ที่ได้รับการยืนยัน/อนุมัติแล้วสำหรับ Python 3.5 จัดกลุ่มตามผลกระทบต่อ MicroPython

ส่วนขยายไวยากรณ์

สถานะ

PEP 448

การทำให้การ unpack แบบทั่วไปมีความยืดหยุ่นมากขึ้น

บางส่วน

PEP 465

ตัวดำเนินการคูณเมทริกซ์ใหม่

สมบูรณ์

PEP 492

Coroutine ด้วยไวยากรณ์ async และ await

สมบูรณ์

ส่วนขยายและการเปลี่ยนแปลงในรันไทม์

PEP 461

การจัดรูปแบบ % สำหรับ binary string

สมบูรณ์

PEP 475

การลองใหม่สำหรับการเรียก system call ที่ล้มเหลวด้วย EINTR

สมบูรณ์

PEP 479

เปลี่ยนการจัดการ StopIteration ภายใน generator

สมบูรณ์

การเปลี่ยนแปลงในไลบรารีมาตรฐาน

PEP 471

os.scandir()

PEP 485

math.isclose() ฟังก์ชันสำหรับทดสอบความเท่ากันโดยประมาณ

สมบูรณ์

การเปลี่ยนแปลงเบ็ดเตล็ด

PEP 441

การปรับปรุงการรองรับแอปพลิเคชัน Python zip

PEP 486

ทำให้ Python Launcher รับรู้สภาพแวดล้อมเสมือน

ไม่เกี่ยวข้อง

PEP 484

คำแนะนำชนิดข้อมูล (เฉพาะคำแนะนำ)

สมบูรณ์ [1]

PEP 488

การกำจัดไฟล์ PYO

ไม่เกี่ยวข้อง

PEP 489

การออกแบบการโหลดโมดูลส่วนขยายใหม่

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

เพิ่มตัวจัดการข้อผิดพลาด namereplace ตัวจัดการข้อผิดพลาด backslashreplace ตอนนี้ทำงานกับการถอดรหัสและการแปลด้วย

Property docstring สามารถเขียนทับได้แล้ว ซึ่งมีประโยชน์อย่างยิ่งสำหรับ collections.namedtuple() docstring

การนำเข้าแบบวงกลมที่เกี่ยวข้องกับการนำเข้าแบบสัมพัทธ์ได้รับการรองรับแล้ว

โมดูลใหม่:

การเปลี่ยนแปลงในโมดูล built-in:

collections

คลาส OrderedDict ตอนนี้ถูกพัฒนาด้วย C ซึ่งทำให้เร็วขึ้น 4 ถึง 100 เท่า

วิว OrderedDict.items(), OrderedDict.keys(), OrderedDict.values() ตอนนี้รองรับการวนซ้ำแบบกลับทิศด้วย reversed()

The deque class now defines index(), insert(), and copy(), and supports the + and * operators.

Docstring ที่สร้างโดย namedtuple() ตอนนี้สามารถอัปเดตได้แล้ว

คลาส UserString ตอนนี้พัฒนาเมธอด __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() และ maketrans() เพื่อให้ตรงกับเมธอดที่สอดคล้องกันของ str

heapq

การเปรียบเทียบองค์ประกอบใน merge() ตอนนี้สามารถกำหนดเองได้โดยส่งฟังก์ชัน key ในอาร์กิวเมนต์คีย์เวิร์ด key แบบเลือกใช้ใหม่ และอาร์กิวเมนต์คีย์เวิร์ด reverse แบบเลือกใช้ใหม่สามารถใช้เพื่อกลับทิศการเปรียบเทียบองค์ประกอบ

io

เมธอด BufferedIOBase.readinto1() ใหม่ ที่ใช้การเรียกเมธอด RawIOBase.read() หรือ RawIOBase.readinto() ของ raw stream ที่อยู่ด้านล่างอย่างมากที่สุดหนึ่งครั้ง

json

ตัวถอดรหัส JSON ตอนนี้เกิด JSONDecodeError แทน ValueError เพื่อให้ข้อมูลบริบทเพิ่มเติมเกี่ยวกับข้อผิดพลาด

math

ค่าคงที่สองตัวใหม่ถูกเพิ่มในโมดูล math: inf และ nan

สมบูรณ์

ฟังก์ชันใหม่ isclose() ให้วิธีทดสอบความเท่ากันโดยประมาณ

ฟังก์ชัน gcd() ใหม่ถูกเพิ่มเข้ามา ฟังก์ชัน fractions.gcd() ถูกเลิกใช้งานแล้ว

os

ฟังก์ชัน scandir() ใหม่ที่คืนค่า iterator ของอ็อบเจกต์ DirEntry ถูกเพิ่มเข้ามา

ฟังก์ชัน urandom() ตอนนี้ใช้ syscall getrandom() บน Linux 3.17 หรือใหม่กว่า และ getentropy() บน OpenBSD 5.6 และใหม่กว่า ซึ่งช่วยลดความจำเป็นในการใช้ /dev/urandom และหลีกเลี่ยงความล้มเหลวที่เกิดจากการหมด file descriptor

ฟังก์ชัน get_blocking() และ set_blocking() ใหม่อนุญาตให้รับและตั้งค่าโหมดบล็อกของ file descriptor (O_NONBLOCK.)

มีฟังก์ชัน os.path.commonpath() ใหม่ที่คืนค่า sub-path ร่วมที่ยาวที่สุดของแต่ละชื่อพาธที่ส่งเข้ามา

re

การอ้างอิงและการอ้างอิงแบบมีเงื่อนไขไปยังกลุ่มที่มีความยาวคงที่ตอนนี้ได้รับอนุญาตใน lookbehind assertion

จำนวนกลุ่มจับภาพในนิพจน์ทั่วไปไม่ถูกจำกัดที่ 100 อีกต่อไป

ฟังก์ชัน sub() และ subn() ตอนนี้แทนที่กลุ่มที่ไม่ตรงกันด้วยสตริงว่างแทนการเกิดข้อยกเว้น

ข้อยกเว้น re.error มีแอตทริบิวต์ใหม่ ได้แก่ msg, pattern, pos, lineno และ colno ที่ให้ข้อมูลบริบทเพิ่มเติมเกี่ยวกับข้อผิดพลาด

socket

ฟังก์ชันที่มี timeout ตอนนี้ใช้ monotonic clock แทน system clock

เมธอด socket.sendfile() ใหม่อนุญาตให้ส่งไฟล์ผ่าน socket โดยใช้ฟังก์ชัน os.sendfile() ที่มีประสิทธิภาพสูงบน UNIX ส่งผลให้การอัปโหลดเร็วขึ้น 2 ถึง 3 เท่าเมื่อเทียบกับการใช้ socket.send() แบบธรรมดา

เมธอด socket.sendall() ไม่รีเซ็ต socket timeout ทุกครั้งที่ bytes ถูกรับหรือส่งอีกต่อไป ตอนนี้ socket timeout คือระยะเวลารวมสูงสุดในการส่งข้อมูลทั้งหมด

อาร์กิวเมนต์ backlog ของเมธอด socket.listen() ตอนนี้เป็นแบบเลือกใช้ โดยค่าเริ่มต้นจะถูกตั้งค่าเป็น SOMAXCONN หรือ 128 แล้วแต่ค่าใดจะน้อยกว่า

สมบูรณ์

ssl

การรองรับ Memory BIO

การรองรับ Application-Layer Protocol Negotiation

มีเมธอด SSLSocket.version() ใหม่เพื่อสอบถามเวอร์ชันโปรโตคอลจริงที่กำลังใช้งาน

คลาส SSLSocket ตอนนี้พัฒนาเมธอด SSLSocket.sendfile()

เมธอด SSLSocket.send() ตอนนี้เกิดข้อยกเว้น ssl.SSLWantReadError หรือ ssl.SSLWantWriteError บน socket แบบ non-blocking หากการดำเนินการจะบล็อก ก่อนหน้านี้จะคืนค่า 0

ฟังก์ชัน cert_time_to_seconds() ตอนนี้แปลเวลาอินพุตเป็น UTC ไม่ใช่เวลาท้องถิ่น ตาม RFC 5280 นอกจากนี้ ค่าที่คืนกลับจะเป็น int เสมอ

เมธอด SSLObject.shared_ciphers() และ SSLSocket.shared_ciphers() ใหม่คืนรายการ cipher ที่ client ส่งมาระหว่าง handshake

เมธอด SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() และ SSLSocket.write() ของคลาส SSLSocket ไม่รีเซ็ต socket timeout ทุกครั้งที่ bytes ถูกรับหรือส่งอีกต่อไป

ฟังก์ชัน match_hostname() ตอนนี้รองรับการจับคู่ที่อยู่ IP

sys

ฟังก์ชัน set_coroutine_wrapper() ใหม่อนุญาตให้ตั้งค่า global hook ที่จะถูกเรียกเมื่อใดก็ตามที่อ็อบเจกต์ coroutine ถูกสร้างโดยฟังก์ชัน async def ฟังก์ชัน get_coroutine_wrapper() ที่สอดคล้องกันสามารถใช้เพื่อรับ wrapper ที่ตั้งค่าอยู่ในปัจจุบัน

ฟังก์ชัน is_finalizing() ใหม่สามารถใช้ตรวจสอบว่า Python interpreter กำลังปิดตัวลงหรือไม่

time

ฟังก์ชัน monotonic() ตอนนี้พร้อมใช้งานเสมอ

หมายเหตุ