Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Docstrings


เราสามารถเพิ่มคอมเมนต์ในโปรแกรม 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 จะถูกเยื้องเหมือนกับเครื่องหมายคำพูดที่บรรทัดแรกของมัน