\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Theo666} \pdfinfo{ /Title (python-chap-14.pdf) /Creator (Cheatography) /Author (Theo666) /Subject (Python\_chap\_14 Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{79B352} \definecolor{LightBackground}{HTML}{F6FAF4} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Python\_chap\_14 Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Theo666} via \textcolor{DarkBackground}{\uline{cheatography.com/193738/cs/40543/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Theo666 \\ \uline{cheatography.com/theo666} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 9th October, 2023.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Create a module}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{NA = 6.02e-23 \# module-level constant \newline \newline class Class\_1(): \newline """ \newline \#docstrings, output of help(module) \newline \# id PEP257 chapitre 15 \newline \newline """ \newline \newline def \_\_init\_\_(self, function\_1, function\_2, data): \newline self.function\_1 = function\_1 \newline self.function\_2 = function\_2 \newline self.data = xxx \newline \newline def function\_1(self): \newline blabla \newline return var \newline \newline def function\_2(self): \newline print(data) \newline \newline def updata(self, add\_var): \newline \#Modifying an Attribute's Value Through a Method \newline self.data += add\_var \newline \newline class Class\_2(Class\_1): \# inherit from Animal \newline """ \newline comment for the class2 \newline \newline blabla \newline """ \newline PI = 3.14 \# constant with uppercase letters \newline \# invariable during programm excutation) \newline \newline def \_\_init\_\_(self, make, model, year): \newline super(class1, \seqsplit{self).\_\_init\_\_(function1}, function2, data) \newline \# call the superclass constructor \newline blabla \newline \newline def function\_3(self,): \newline """docstrings under method""" \newline blabla \newline \newline def function\_4(self): \newline blablabla} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{The \_\_init\_\_() method takes in these parameters and stores them in the attributes that will be associated with instances made from this class.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{import a module}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{import module as alias \newline \# import a entier module and give it an allas \newline \newline from module import class \newline \# from a module import a class \newline \# it should prepare at first a file \_\_init\_\_.py at the directory \newline \newline from module.class import method \newline \# from a class of module import a method (function)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{init.py}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{An init.py file is a special file that is used to indicate that a directory contains a Python package. A Python package is a collection of modules that can be imported and used together. An init.py file can also contain code that is executed when the package or a module in the package is imported. This can be useful for initializing package-level data or performing other tasks \newline % Row Count 8 (+ 8) Before Python 3.3, an init.py file was required for every package directory. Otherwise, Python would not recognize the directory as a package and would not be able to import modules from it. This was done to prevent directories with common names, such as string, from unintentionally hiding valid modules that occur later on the module search path. \newline % Row Count 15 (+ 7) However, since Python 3.3, an init.py file is no longer mandatory for defining a package. Python can also recognize namespace packages, which are packages that do not have an init.py file and can span multiple directories. Namespace packages allow multiple portions of a package to be distributed and installed separately, and then merged together at runtime% Row Count 23 (+ 8) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{create an environment path}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{Linux \& MacOS un file bash (\textasciitilde{}.bashrc) \newline export \seqsplit{PYTHONPATH=\$PYTHONPATH:/chemin/vers/mon/super/module} \newline then \newline echo \$PYTHONPATH \newline source \textasciitilde{}.bashrc \newline \newline Windows in shell PowerShell \newline \$env:PYTHONPATH += ";C:\textbackslash{}chemin\textbackslash{}vers\textbackslash{}mon\textbackslash{}super\textbackslash{}module" \newline then \newline echo \$env:PYTHONPATH} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}