Je suis nouveau sur Python et la programmation en général. Je suis un module à l’université qui me demande d’écrire des programmes assez basiques en Python. Cependant, j'ai eu ce retour sur ma dernière mission:
Il devrait y avoir un bloc d’en-tête contenant le nom du fichier, le nom de l’auteur, la date de création, la date de modification et la version python.
Qu'est-ce qu'un bloc d'en-tête? S'agit-il uniquement de commentaires en haut de votre code ou s'agit-il de quelque chose qui s'imprime lorsque le programme est exécuté? Ou autre chose?
Il y a quelque chose appelé Docstring en python (et voici quelques conventions sur la façon d'écrire du code python en général - PEP 8 ) échappé par un guillemet simple triple '''
ou un guillemet double double """
bien adapté à commentaires multilignes:
'''
File name: test.py
Author: Peter Test
Date created: 4/20/2013
Date last modified: 4/25/2013
Python Version: 2.7
'''
Vous pouvez également utiliser des variables spéciales ultérieurement (lors de la programmation d'un module) dédiées à contenir des informations telles que:
__author__ = "Rob Knight, Gavin Huttley, and Peter Maxwell"
__copyright__ = "Copyright 2007, The Cogent Project"
__credits__ = ["Rob Knight", "Peter Maxwell", "Gavin Huttley",
"Matthew Wakefield"]
__license__ = "GPL"
__version__ = "1.0.1"
__maintainer__ = "Rob Knight"
__email__ = "[email protected]"
__status__ = "Production"
Plus de détails dans répondez ici .
Votre instructeur souhaite que vous ajoutiez des informations à la section supérieure du code source de votre travail, comme ceci:
####################################
# File name: ... #
# Author: ... #
# Submission: #
# Instructor: #
####################################
Un bloc d'en-tête ne sont que des commentaires en haut du code. Il n'imprime pas lorsque le programme est exécuté.
Un exemple pourrait ressembler à ceci:
# File name: test.py
# Author: Peter Test
# Date created: 4/20/2013
# Date last modified: 4/25/2013
# Python Version: 2.7
# Begin code
a = 1
b = 2
c = a + b
print c
J'utilise ce format, comme j'apprends, "C'est plus pour ma propre santé mentale que pour une nécessité."
Comme j'aime la cohérence. Alors, je commence mes fichiers comme ça.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# =============================================================================
# Created By : Jeromie Kirchoff
# Created Date: Mon August 18 18:54:00 PDT 2018
# =============================================================================
"""The Module Has Been Build for..."""
# =============================================================================
# Imports
# =============================================================================
from ... import ...
<more code...>
There's no reason for most Python files to have a Shebang line
mais, pour moi, j’ai le sentiment que cela indique à l’utilisateur que j’ai écrit cela explicitement pour python3. Comme sur mon mac, j'ai à la fois python2 et python3.GitHub
. Non pertinent encore, juste des choses que j'ai ramassées pour ma santé mentale.Encore une fois, c'est juste ma préférence. Dans un working environment
, vous devez convaincre tout le monde de changer le comportement de facto. Je pourrais continuer encore et encore, mais nous le savons tous, du moins sur le lieu de travail.
Donc, dans ce contexte d'un cadre universitaire:
Bloc d'en-tête ou commentaires
Les commentaires d'en-tête apparaissent en haut du fichier. Ces lignes incluent généralement le nom de fichier, l'auteur, la date, le numéro de version et une description de l'utilisation du fichier et de son contenu. Pour les travaux en classe, les en-têtes doivent également inclure des éléments tels que le nom du cours, le numéro, la section, l’instructeur et le numéro du travail.
Eh bien, cela peut être interprété différemment par votre professeur, présentez-le et demandez!
"Si vous ne demandez jamais, la réponse est TOUJOURS NON."
c'est à dire:
# Course: CS108
# Laboratory: A13
# Date: 2018/08/18
# Username: JayRizzo
# Name: Jeromie Kirchoff
# Description: My First Project Program.
ou à la manière python en utilisant "Noms de Dunder au niveau du module"
__author__ = 'Jeromie Kirchoff'
__copyright__ = 'Copyright 2018, Your Project'
__credits__ = ['Jeromie Kirchoff', 'Victoria Mackie']
__license__ = 'MSU' # Makin' Shi* Up!
__version__ = '1.0.1'
__maintainer__ = 'Jeromie Kirchoff'
__email__ = '[email protected]'
__status__ = 'Prototype'
__course__ = 'cs108'
__teammates__ = ['Jeromie Kirchoff']
__laboratory__ = 'A13'
__date__ = '2018/08/18'
__user= 'JayRizzo'
__description__ = 'My First Project Program.'
Ensuite, ajoutez simplement un petit code à imprimer si l'instructeur le souhaite.
print('# ' + '=' * 78)
print('Author: ' + __author__)
print('Teammates: ' + ', '.join(__teammates__))
print('Copyright: ' + __copyright__)
print('Credits: ' + ', '.join(__credits__))
print('License: ' + __license__)
print('Version: ' + __version__)
print('Maintainer: ' + __maintainer__)
print('Email: ' + __email__)
print('Status: ' + __status__)
print('Course: ' + __course__)
print('Laboratory: ' + __laboratory__)
print('Date: ' + __date__)
print('Username: ' + __username__)
print('Description: ' + __description__)
print('# ' + '=' * 78)
Chaque fois que le programme est appelé, il affiche la liste.
$ python3 custom_header.py
# ==============================================================================
Author: Jeromie Kirchoff
Teammates: Jeromie Kirchoff
Copyright: Copyright 2018, Your Project
Credits: Jeromie Kirchoff, Victoria Mackie
License: MSU
Version: 1.0.1
Maintainer: Jeromie Kirchoff
Email: [email protected]
Status: Prototype
Course: CS108
Laboratory: A13
Date: 2018/08/18
Username: JayRizzo
Description: My First Project Program.
# ==============================================================================
Remarques: Si vous développez votre programme, définissez-le une seule fois dans le fichier init .py et vous devriez être prêt, mais vérifiez à nouveau auprès du professeur.
Dans ce contexte, vous avez raison. Un bloc d'en-tête signifie un ensemble de commentaires en haut du fichier source contenant les informations demandées. Il n'a pas besoin de contenir de code qui fait quoi que ce soit.