Saya telah melihat beberapa gaya penulisan dokumen dengan Python, apakah ada gaya resmi atau "disetujui"?
python
coding-style
documentation
docstring
Noah McIlraith
sumber
sumber
epydoc
,doxygen
,sphinx
? Adakah yang punya statistik, apakah salah satunya akan menggantikan yang lain, dalam kasus seperti ini terlalu banyak pilihan bisa menyakitkan.def foo(self, other):\n\t"""\n\t(blank line)\n\t:param other: \n\t:return:\n\t"""
Jawaban:
Format
Dokumentasi python dapat ditulis mengikuti beberapa format seperti yang ditunjukkan oleh posting lainnya. Namun format dokumentasi Sphinx default tidak disebutkan dan didasarkan pada reStructuredText (reST) . Anda dapat memperoleh beberapa informasi tentang format utama dalam posting blog ini .
Perhatikan bahwa reST direkomendasikan oleh PEP 287
Berikut ini format utama yang digunakan untuk dokumen.
- Episode
Secara historis gaya seperti javadoc adalah lazim, sehingga diambil sebagai basis untuk Epydoc (dengan
Epytext
format yang disebut ) untuk menghasilkan dokumentasi.Contoh:
- REST
Saat ini, format yang mungkin lebih umum adalah format reStructuredText (reST) yang digunakan oleh Sphinx untuk menghasilkan dokumentasi. Catatan: ini digunakan secara default di JetBrains PyCharm (ketik triple quotes setelah mendefinisikan metode dan tekan enter). Ini juga digunakan secara default sebagai format output dalam Pyment.
Contoh:
- Google
Google memiliki format sendiri yang sering digunakan. Ini juga dapat diartikan oleh Sphinx (mis. Menggunakan plugin Napoleon ).
Contoh:
Bahkan lebih banyak contoh
- Numpydoc
Perhatikan bahwa Numpy merekomendasikan untuk mengikuti numpydoc mereka sendiri berdasarkan format Google dan dapat digunakan oleh Sphinx.
Konversi / Pembangkitan
Dimungkinkan untuk menggunakan alat seperti Pyment untuk secara otomatis menghasilkan dokumen ke proyek Python yang belum didokumentasikan, atau untuk mengkonversi dokumen yang ada (dapat mencampurkan beberapa format) dari satu format ke format lainnya.
Catatan: Contoh-contoh diambil dari dokumentasi Pyment
sumber
The panduan gaya Google berisi panduan gaya Python baik. Ini termasuk konvensi untuk sintaks dokumentasi yang dapat dibaca yang menawarkan panduan yang lebih baik daripada PEP-257. Sebagai contoh:
Saya ingin memperluas ini untuk juga memasukkan informasi jenis dalam argumen, seperti yang dijelaskan dalam tutorial dokumentasi Sphinx ini . Sebagai contoh:
sumber
Konvensi docstring ada dalam PEP-257 dengan lebih banyak detail daripada PEP-8.
Namun, dokumentasi tampaknya jauh lebih pribadi daripada bidang kode lainnya. Proyek yang berbeda akan memiliki standar sendiri.
Saya cenderung selalu memasukkan dokumen, karena mereka cenderung menunjukkan bagaimana menggunakan fungsi dan apa yang dilakukannya dengan sangat cepat.
Saya lebih memilih untuk menjaga hal-hal yang konsisten, terlepas dari panjang tali. Saya suka bagaimana kode terlihat ketika lekukan dan spasi konsisten. Itu artinya, saya menggunakan:
Lebih:
Dan cenderung tidak mengomentari baris pertama dalam dokumen yang lebih panjang:
Berarti saya menemukan dokumen yang mulai seperti ini menjadi berantakan.
sumber
"""Return the squared result"""
bukannya"""Returns the squared result"""
. Meskipun secara pribadi, saya menulis milik saya bagaimana Tim ada di sini, terlepas dari apa yang dikatakan PEP.Seperti tidak ada yang menyebutkannya: Anda juga dapat menggunakan Numpy Docstring Standard . Ini banyak digunakan dalam komunitas ilmiah.
Ekstensi sphinx Napolean untuk mem-parsing Google-style docstring (direkomendasikan dalam jawaban @Nathan) juga mendukung docstring Numpy-style, dan membuat perbandingan singkat keduanya.
Dan terakhir contoh dasar untuk memberikan gambaran bagaimana tampilannya:
sumber
PEP-8 adalah standar pengkodean python resmi. Ini berisi bagian tentang docstring, yang mengacu pada PEP-257 - spesifikasi lengkap untuk docstrings.
sumber
Itu adalah Python; apapun itu . Pertimbangkan cara mempublikasikan dokumentasi Anda . Dokumen tidak terlihat kecuali bagi pembaca kode sumber Anda.
Orang-orang sangat suka menelusuri dan mencari dokumentasi di web. Untuk mencapainya, gunakan alat dokumentasi Sphinx . Ini adalah standar de-facto untuk mendokumentasikan proyek Python. Produk ini indah - lihat di https://python-guide.readthedocs.org/en/latest/ . Situs web Baca Dokumen akan meng-host dokumen Anda secara gratis.
sumber
ipython
untuk menguji-drive perpustakaan, dan itu membuat membaca dokumen mati sederhana - yang harus saya ketik adalahyour_module.some_method_im_curious_about?
dan saya mendapatkan setiap cetakan bagus, termasuk docstring.help
fungsi pada fungsi / metode / kelas yang didokumentasikan (dan itu dapat Anda lakukan bahkan jika Anda hanya memiliki akses ke modul yang dikompilasi). Secara pribadi saya pikir kita harus mengingat hal ini ketika memilih konvensi docstring (yaitu bahwa itu bermaksud untuk dibaca apa adanya).Saya sarankan menggunakan program pep257 Python Vladimir Keleshev untuk memeriksa dokumen Anda terhadap PEP-257 dan Standar Numpy Docstring untuk menjelaskan parameter, pengembalian, dll.
pep257 akan melaporkan divergensi yang Anda buat dari standar dan disebut seperti pylint dan pep8.
sumber
pydocstyle --select=D4 tmp.py
memeriksa berbagai masalah konten docstring termasuk penamaan bagian.