เราสามารถเพิ่มคอมเมนต์ในโปรแกรม Python เพื่อทำความเข้าใจส่วนต่างๆ ของโค้ด แต่เพื่อค้นหาคอมเมนต์และส่วนต่างๆ ของคอมเมนต์ เราต้องใช้ค้นหา (CTL+F) และเลื่อนอ่านหลายบรรทัด นอกจากนี้ เรายังไม่มีวิธีทันทีที่จะรู้ว่าคำที่กำหนดมีส่วนเกี่ยวข้องกับกี่ส่วนของโค้ด เพื่อแก้ปัญหานี้ เรามี Python Docstring ซึ่งเข้าถึงสตริงทันทีหลังจากการประกาศฟังก์ชัน โมดูล คลาส หรือเมธอด
การพิมพ์ Docstring
แอตทริบิวต์ __doc__ จะเชื่อมโยงกับชื่อของ Object ใน Python โดยอัตโนมัติ เมื่อมันถูกประกาศทันทีหลังจากการกำหนด Object นั้น ตัวอย่างด้านล่างจะทำให้ชัดเจน
ตัวอย่าง
def Add_nums(x):
'''Ada a number to itself.'''
return x + x
print(Add_nums.__doc__)
ผลลัพธ์
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ −
Ada a number to itself.
Docstring บรรทัดเดียว vs หลายบรรทัด
Docstring บรรทัดเดียวเป็นบรรทัดเดียวและไม่ควรอธิบายมากเกินไป พวกมันถูกล้อมรอบด้วย Triple Quotes ที่จุดเริ่มต้นและจุดสิ้นสุดของสตริง ตัวอย่างข้างต้นเป็น Docstring บรรทัดเดียว
Docstring หลายบรรทัด
บางครั้งเราอาจต้องอธิบายโมดูลหรือฟังก์ชันอย่างละเอียดขึ้น ในกรณีนั้น เราใช้ Docstring หลายบรรทัด พวกมันแสดงบรรทัดสรุปเหมือน Docstring บรรทัดเดียว แล้วตามด้วยบรรทัดว่าง ตามด้วยคำอธิบายที่ละเอียดขึ้น
ตัวอย่าง
def Fibonacci(n):
'''The Fibonacci numbers are the numbers in the following integer sequence. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, .'''
return x + x
print(Fibonacci.__doc__)
ผลลัพธ์
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ −
The Fibonacci numbers are the numbers in the following integer sequence. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, .
Docstring ของ Object ใน Python แบบ Built-in
เราสามารถเข้าถึงเอกสารที่เกี่ยวข้องกับ Object ของ Python เช่น ฟังก์ชัน โมดูล ฯลฯ ได้ง่ายๆ โดยใช้ชื่อ Class ร่วมกับ __doc__
ตัวอย่าง
print(list.__doc__)
ผลลัพธ์
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ −
Built-in mutable sequence. If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.
การเยื้องใน Docstrings
การเยื้องใดๆ ในบรรทัดแรกของ Docstring (เช่น จนถึง newline แรก) ไม่มีนัยสำคัญและจะถูกลบออก การเยื้องสัมพัทธ์ของบรรทัดต่อๆ ไปใน Docstring จะถูกเก็บไว้ ทั้ง Docstring จะถูกเยื้องเหมือนกับเครื่องหมายคำพูดที่บรรทัดแรกของมัน