Mendapatkan dokumen dari suatu fungsi

184

Saya memiliki fungsi berikut:

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

Bagaimana cara saya mendapatkan akses ke dokumen?

Teifion
sumber
13
Perhatikan bahwa menjalankan Python dengan -OO menghapus dokumen. Jika Anda bermaksud mendistribusikan kode Anda kepada orang lain, perlu diingat bahwa mereka dapat menjalankannya dengan cara itu. Itu akan membuat orang-orang itu benar-benar tidak bahagia jika kode Anda bergantung pada dokumen, tetapi tidak menangkap kasus di mana mereka tidak ada.
DNS

Jawaban:

243

Secara interaktif, Anda dapat menampilkannya dengan

help(my_func)

Atau dari kode Anda dapat mengambilnya

my_func.__doc__
beristirahat
sumber
1
BTW: Teknik ini bekerja dengan fungsi builtin serta modul dan kelas (test help () dengan objek juga - mungkin juga berfungsi). Ini membuat shell python Anda menjadi shell bantuan interaktif!
Daren Thomas
3
Pada prompt ipython, Anda dapat melakukan my_func ?? dan itu akan menunjukkan docstring juga.
ronak
1
help (func) memberikan output yang dapat dibaca sementara func .__ doc__ memberikan output inline. Terima kasih atas jawabannya.
imsrgadich
77

Anda juga bisa menggunakan inspect.getdoc. Ini membersihkan __doc__tab dengan menormalkan ke spasi dan kiri menggeser tubuh doc untuk menghapus ruang terkemuka umum.

Andrew Dalke
sumber
8

Pada notebook ipython atau jupyter, Anda dapat menggunakan semua cara yang disebutkan di atas, tetapi saya tetap menggunakannya

my_func?

atau

?my_func

untuk ringkasan cepat dari kedua metode tanda tangan dan dokumentasi.

Saya menghindari penggunaan

my_func??

(seperti yang dikomentari oleh @rohan) untuk docstring dan menggunakannya hanya untuk memeriksa kode sumber

Sameer Sinha
sumber