งูหลาม 3.X (เท่านั้น) นอกจากนี้ยัง generalizes นิยามฟังก์ชันที่จะช่วยให้การขัดแย้งและกลับค่าที่จะมีคำอธิบายประกอบกับค่านิยมวัตถุ
สำหรับการใช้งานในส่วนขยาย
มันเป็นข้อมูล META ที่จะอธิบายให้ชัดเจนมากขึ้นเกี่ยวกับค่าฟังก์ชั่น
คำอธิบายประกอบจะได้รับการกำหนดรหัสตาม:value
หลังชื่ออาร์กิวเมนต์และหน้าค่าเริ่มต้นและ->value
หลังรายการอาร์กิวเมนต์
พวกมันถูกรวบรวมไว้ใน__annotations__
คุณสมบัติของฟังก์ชั่น แต่ไม่ได้รับการปฏิบัติเป็นอย่างอื่นโดยไพ ธ อนเอง:
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
ที่มา: Python Pocket Reference, Fifth Edition
ตัวอย่าง:
typeannotations
โมดูลให้ชุดเครื่องมือสำหรับการตรวจสอบชนิดและอนุมานชนิดของงูหลามรหัส นอกจากนี้ยังมีชุดของประเภทที่มีประโยชน์สำหรับคำอธิบายประกอบฟังก์ชั่นและวัตถุ
เครื่องมือเหล่านี้ส่วนใหญ่ได้รับการออกแบบให้ใช้งานโดยตัววิเคราะห์แบบสแตติกเช่น linters, ไลบรารีที่สมบูรณ์ของโค้ดและ IDE นอกจากนี้ยังมีการตกแต่งสำหรับการตรวจสอบเวลาทำงาน การตรวจสอบชนิดรันไทม์ไม่ใช่ความคิดที่ดีใน Python เสมอไป แต่ในบางกรณีมันอาจมีประโยชน์มาก
https://github.com/ceronman/typeannotations
วิธีการพิมพ์ช่วยในการเขียนรหัสที่ดีขึ้น
การพิมพ์สามารถช่วยให้คุณทำการวิเคราะห์โค้ดแบบสแตติกเพื่อตรวจจับข้อผิดพลาดประเภทก่อนที่คุณจะส่งรหัสไปยังการผลิตและป้องกันคุณจากข้อบกพร่องบางอย่างที่ชัดเจน มีเครื่องมือเช่น mypy ซึ่งคุณสามารถเพิ่มลงในกล่องเครื่องมือของคุณซึ่งเป็นส่วนหนึ่งของวงจรชีวิตซอฟต์แวร์ของคุณ mypy สามารถตรวจสอบประเภทที่ถูกต้องโดยเรียกใช้กับ codebase ของคุณบางส่วนหรือทั้งหมด mypy ยังช่วยให้คุณตรวจจับข้อบกพร่องเช่นการตรวจสอบประเภทไม่มีเมื่อค่าถูกส่งกลับจากฟังก์ชั่น การพิมพ์ช่วยทำให้โค้ดของคุณสะอาดขึ้น แทนที่จะบันทึกรหัสของคุณโดยใช้ความคิดเห็นที่คุณระบุประเภทใน docstring คุณสามารถใช้ประเภทโดยไม่เสียค่าใช้จ่ายใด ๆ
ทำความสะอาดหลาม: การเข้ารหัสที่หรูหราใน Python ISBN: ISBN-13 (pbk): 978-1-4842-4877-5
PEP 526 - ไวยากรณ์ของคำอธิบายประกอบแบบตัวแปร
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html