-
Notifications
You must be signed in to change notification settings - Fork 0
/
template_class.py
105 lines (83 loc) · 3.32 KB
/
template_class.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# Sources:
# https://peps.python.org/pep-0008/#class-names
# https://pep8.org/#function-and-method-arguments
#############################
# 1. Shebang-Line #
#############################
# needed only for files that are intended to be executed
# !/usr/bin/env python
#############################
# 2. Imports #
#############################
# imports are always on the top of a file
# imports in seperate lines
import os
import sys
# Use from x import y where x is the package prefix and y is the module name with no prefix.
from matplotlib import pyplot
# Use import y as z only when z is a standard abbreviation (e.g., np for numpy).
import numpy as np
# two blank lines between top level functions and class definition
#############################
# 3. Class-Defintion #
#############################
# class names should be capitalized words
class TestClass:
#############################
# 4. Method-Definition #
#############################
# constants should be upper case with underscores to improve readability
MAX_VELOCITY = 40.0
# the __init__.py constructor should always be the first class method
def __init__(self):
self.x = 0.0
# one leading underscore for non-public instance and method names
self._name = "Max"
# use a trailing underscore to avoid collision of attribute names with reserved keywords
self.if_ = False
# function names should be lower case with underscores to improve readability
# always use self as first argument for istance methods
def test_function1(self):
pass
# single blank line between method definitions
# always use cls as first argument for class functions
def test_function2(cls):
pass
#############################
# 5. Comments #
#############################
def test_function3(self): # inline comment
# This is a block comment
# It goes over multiple lines
# All comments start with a blank space
pass
#############################
# 6. Docstrings #
#############################
def test_function4(self, param1, param2):
# This docstring style is supported by Sphinx and helps with automated API documentation creation, automatically created by PyCharm
"""
This is the description of the function.
:param param1: first parameter
:param param2: second parameter
:return: return value(s)
"""
pass
def test_function5(self, param1, param2):
# This docstring style is supported by Sphinx and helps with automated API documentation creation, automatically created by VSCode extension autoDocstring
# VSCode Extentsion: autoDocstring- Python Docstring Generator by Nils Werner
# To get the ReST format like in Pycharm
# Go to Extension setting and change it under `Auto Doctring:Docstring Format` to `sphinx-notypes`
"""_summary_
:param param1: _description_
:param param2: _description_
:return: _description_
"""
return param1
# main function of the class
def main(self):
print("Hello World")
# main function, to be executed when the python file is executed
if __name__ == "__main__":
runner = TestClass()
runner.main()