Python: What is a header?
Python: What is a header?
Theres thing called Docstring in python (and herere some conventions on how to write python code in general – PEP 8) escaped by either triple single quote or triple double quote
well suited for multiline comments:
File name: test.py
Author: Peter Test
Date created: 4/20/2013
Date last modified: 4/25/2013
Python Version: 2.7
You also may used special variables later (when programming a module) that are dedicated to contain info as:
__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
More details in answer here.
My Opinion
I use this this format, as I am learning, This is more for my own sanity, than a necessity.
As I like consistency. So, I start my files like so.
#!/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...>
- First line is the Shebang
- And I know
Theres no reason for most Python files to have a shebang line
but, for me I feel it lets the user know that I wrote this explicitly for python3. As on my mac I have both python2 & python3.
- And I know
- Line 2 is the encoding, again just for clarification
- As some of us forget when we are dealing with multiple sources (APIs, Databases, Emails etc.)
- Line 3 is more of my own visual representation of the max 80 char.
- I know Oh, gawd why?!? again this allows me to keep my code within 80 chars for visual representation & readability.
- Line 4 & 5 is just my own way of keeping track as when working in a big group keeping who wrote it on hand is helpful and saves a bit of time looking thru your
GitHub
. Not relevant again just things I picked up for my sanity. - Line 7 is your Docstring that is required at the top of each python file per Flake8.
Again, this is just my preference. In a working environment
you have to win everyone over to change the defacto behaviour. I could go on and on about this but we all know about it, at least in the workplace.
Header Block
- What is a header block?
- Is it just comments at the top of your code
or is it be something which prints when the program runs? - Or something else?
So in this context of a university setting:
Header comments appear at the top of a file. These lines typically include the filename, author, date, version number, and a description of what the file is for and what it contains. For class assignments, headers should also include such things as course name, number, section, instructor, and assignment number.
- Is it just comments at the top of your code or is it be something which prints when the program runs? Or something else?
Well, this can be interpreted differently by your professor, showcase it and ask!
If you never ask, The answer is ALWAYS No.
ie:
# Course: CS108
# Laboratory: A13
# Date: 2018/08/18
# Username: JayRizzo
# Name: Jeromie Kirchoff
# Description: My First Project Program.
If you are looking for Overkill:
or the python way using Module Level Dunder Names
Standard Module Level Dunder Names
__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
Add Your Own Custom Names:
__course__ = cs108
__teammates__ = [Jeromie Kirchoff]
__laboratory__ = A13
__date__ = 2018/08/18
__username__ = JayRizzo
__description__ = My First Project Program.
Then just add a little code to print if the instructor would like.
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)
End RESULT
Every time the program gets called it will show the list.
$ 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.
# ==============================================================================
Notes: If you expand your program just set this once in the init.py and you should be all set, but again check with the professor.
If would like the script checkout my github.
Python: What is a header?
Your instructor wants you to add some information to your assignments source codes top section something like this, so you are right you will add comments:
####################################
# File name: ... #
# Author: ... #
# Submission: #
# Instructor: #
####################################