รับเอกสารจากฟังก์ชั่น


184

ฉันมีฟังก์ชั่นต่อไปนี้:

def my_func():
    """My docstring is both funny and informative"""
    pass

ฉันจะเข้าถึง docstring ได้อย่างไร


13
โปรดทราบว่าการเรียกใช้ Python ที่มี -OO จะเป็นการแยกเอกสารออก หากคุณตั้งใจจะแจกจ่ายรหัสของคุณให้ผู้อื่นทราบโปรดทราบว่าพวกเขาอาจเรียกใช้วิธีนั้น มันจะทำให้คนเหล่านั้นไม่มีความสุขจริง ๆ หากรหัสของคุณอาศัยเอกสาร แต่ไม่ได้ดูกรณีที่ไม่มี
DNS

คำตอบ:


243

คุณสามารถแสดงผลแบบโต้ตอบได้ด้วย

help(my_func)

หรือจากรหัสคุณสามารถเรียกดูได้ด้วย

my_func.__doc__

1
BTW: เทคนิคนี้ทำงานได้กับฟังก์ชั่นในตัวเช่นเดียวกับโมดูลและคลาส (ทดสอบวิธีใช้ () กับวัตถุด้วย - อาจใช้งานได้) สิ่งนี้ทำให้ python shell ของคุณเป็น shell help แบบโต้ตอบ!
Daren Thomas

3
บนพร้อมท์ ipython คุณสามารถทำ my_func ?? และมันจะแสดง docstring เช่นกัน
ronak

1
ช่วย (func) ให้เอาต์พุตที่อ่านได้ในขณะที่ func .__ doc__ ให้เอาต์พุตแบบอินไลน์ ขอบคุณสำหรับคำตอบ.
imsrgadich

77

inspect.getdocนอกจากนี้คุณยังสามารถใช้ มันล้างข้อมูล__doc__โดยปรับแท็บให้เป็นช่องว่างและทำให้ร่างกายเอกสารขยับซ้ายเพื่อลบช่องว่างนำหน้าทั่วไป


8

ใน ipython หรือ jupyter notebook คุณสามารถใช้ทุกวิธีดังกล่าวข้างต้น แต่ฉันไปด้วย

my_func?

หรือ

?my_func

สำหรับการสรุปอย่างรวดเร็วของทั้งเมธอด Signature และ docstring

ฉันหลีกเลี่ยงการใช้

my_func??

(ตามที่คอมเม้นต์โดย @rohan) สำหรับ docstring และใช้เพื่อตรวจสอบซอร์สโค้ดเท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.