Saya menemukan format header berikut untuk file sumber Python dalam dokumen tentang pedoman pengkodean Python:
#!/usr/bin/env python
"""Foobar.py: Description of what foobar does."""
__author__ = "Barack Obama"
__copyright__ = "Copyright 2009, Planet Earth"
Apakah ini format standar header di dunia Python? Apa bidang / informasi lain yang bisa saya taruh di header? Guru python membagikan panduan Anda untuk tajuk sumber Python yang bagus :-)
Jawaban:
Semua metadata untuk
Foobar
modul.Yang pertama adalah
docstring
modul, yang sudah dijelaskan dalam jawaban Peter .Di sini Anda memiliki informasi lebih lanjut, daftar
__author__
,__authors__
,__contact__
,__copyright__
,__license__
,__deprecated__
,__date__
dan__version__
metadata yang diakui.sumber
__version__
harus langsung mengikuti dokumen utama, dengan baris kosong sebelum dan sesudah. Juga, ini adalah praktik terbaik untuk mendefinisikan rangkaian karakter Anda segera di bawah shebang -# -*- coding: utf-8 -*-
Saya sangat menyukai header file minimal, yang saya maksud hanya:
#!
baris) jika ini adalah skrip yang dapat dieksekusiyaitu. tiga kelompok impor, dengan satu baris kosong di antara mereka. Dalam setiap grup, impor diurutkan. Kelompok terakhir, impor dari sumber lokal, dapat berupa impor absolut seperti yang ditunjukkan, atau impor relatif eksplisit.
Yang lainnya adalah buang-buang waktu, ruang visual, dan secara aktif menyesatkan.
Jika Anda memiliki penafian hukum atau info lisensi, itu masuk ke file terpisah. Tidak perlu menginfeksi setiap file kode sumber. Hak cipta Anda harus menjadi bagian dari ini. Orang-orang seharusnya dapat menemukannya di
LICENSE
file Anda , bukan kode sumber acak.Metadata seperti kepengarangan dan tanggal sudah dikelola oleh kontrol sumber Anda. Tidak perlu menambahkan versi yang kurang detail, salah, dan ketinggalan zaman dari informasi yang sama dalam file itu sendiri.
Saya tidak percaya ada data lain yang semua orang perlu masukkan ke semua file sumber mereka. Anda mungkin memiliki beberapa persyaratan khusus untuk melakukannya, tetapi hal-hal seperti itu, menurut definisi, hanya berlaku untuk Anda. Mereka tidak memiliki tempat di "header umum yang direkomendasikan untuk semua orang".
sumber
__version__
metadata, dan saya pikir itu bagus untuk dimiliki, karena itu harus dapat diakses oleh program dan untuk memeriksa dengan cepat di interpreter interaktif. Kepengarangan dan informasi hukum termasuk dalam file yang berbeda. Kecuali Anda memiliki use case untukif 'Rob' in __author__:
Jawaban di atas benar-benar lengkap, tetapi jika Anda ingin tajuk yang cepat dan kotor untuk disalin, gunakan ini:
Mengapa ini bagus?
Lihat juga: https://www.python.org/dev/peps/pep-0263/
Jika Anda hanya menulis kelas di setiap file, Anda bahkan tidak memerlukan dokumentasi (itu akan masuk ke dalam dokumen kelas).
sumber
Juga lihat PEP 263 jika Anda menggunakan karakter non-ascii
sumber