W dokumencie dotyczącym wytycznych kodowania w języku Python natrafiłem na następujący format nagłówka plików źródłowych Python:
#!/usr/bin/env python
"""Foobar.py: Description of what foobar does."""
__author__ = "Barack Obama"
__copyright__ = "Copyright 2009, Planet Earth"
Czy to standardowy format nagłówków w świecie Python? Jakie inne pola / informacje mogę umieścić w nagłówku? Guru Python dzielą się Twoimi wytycznymi dotyczącymi dobrych nagłówków źródeł Python :-)
Odpowiedzi:
To wszystkie metadane dla
Foobar
modułu.Pierwszy to
docstring
moduł, który został już wyjaśniony w odpowiedzi Piotra .Tutaj masz więcej informacji, wymieniając
__author__
,__authors__
,__contact__
,__copyright__
,__license__
,__deprecated__
,__date__
i__version__
uznanych metadanych.źródło
__version__
musi bezpośrednio podążać za głównym dokumentowaniem, z pustą linią przed i po. Ponadto najlepszą praktyką jest definiowanie zestawu znaków bezpośrednio pod shebangiem -# -*- coding: utf-8 -*-
Zdecydowanie preferuję minimalne nagłówki plików, przez co rozumiem tylko:
#!
linia), jeśli jest to skrypt wykonywalnyto znaczy. trzy grupy importu, z pojedynczą pustą linią między nimi. W ramach każdej grupy importowane są sortowane. Ostatnią grupą, importowaną z lokalnego źródła, może być import bezwzględny, jak pokazano, lub wyraźny import względny.
Cała reszta to strata czasu, przestrzeni wizualnej i aktywnie wprowadza w błąd.
Jeśli masz zastrzeżenia prawne lub informacje licencyjne, zostanie ono umieszczone w osobnym pliku. Nie musi infekować każdego pliku kodu źródłowego. Twoje prawa autorskie powinny być częścią tego. Ludzie powinni mieć możliwość znalezienia go w twoim
LICENSE
pliku, a nie w losowym kodzie źródłowym.Metadane, takie jak autorstwo i daty, są już kontrolowane przez kontrolę źródła. Nie ma potrzeby dodawania mniej szczegółowych, błędnych i nieaktualnych wersji tych samych informacji w samym pliku.
Nie sądzę, aby były jakieś inne dane, które każdy powinien umieścić we wszystkich swoich plikach źródłowych. Możesz mieć pewne szczególne wymagania, ale takie rzeczy z definicji dotyczą tylko ciebie. Nie mają miejsca w „ogólnych nagłówkach zalecanych dla wszystkich”.
źródło
__version__
metadane i myślę, że warto je mieć, ponieważ powinny one być dostępne dla programów i szybko sprawdzać w interaktywnym tłumaczu. Autorstwo i informacje prawne należą jednak do innego pliku. Chyba że masz przypadek użyciaif 'Rob' in __author__:
Powyższe odpowiedzi są naprawdę kompletne, ale jeśli chcesz szybkiego i brudnego nagłówka, aby skopiować i wkleić, użyj tego:
Dlaczego to jest dobre:
Zobacz także: https://www.python.org/dev/peps/pep-0263/
Jeśli po prostu napiszesz klasę w każdym pliku, nie potrzebujesz nawet dokumentacji (znalazłaby się w dokumencie klasy).
źródło
Zobacz także PEP 263, jeśli używasz zestawu znaków innego niż ascii
źródło