Python
Tricks
Class inheritance
- Use constructor from Base(i.e. Parent) class in the Child class, along with child’s constructor.
python
class a:
def __init__(self,x):
self.x = x
def se(self,z):
print(z*2)
class b(a):
def __init__(self,x,y):
self.y = y
super().__init__(x)
We can use Base class methods(i.e. functions) by doing this:
python
b(1,2).se(3)
We can call constructor of Parent class by doing this:
python
b(1,2).x
We can call constructor of Child class by doing this:
python
b(1,2).y
Merging two dictionaries in Python 3.x
python
d1 = {"a":1, "b":2}
d2 = {"c":3, "d":4}
d1Ud2 = {**d1, **d2}
# Output: d1Ud2 = {"a":1, "b":2, "c":3, "d":4}
Circular Dependencies
I strongly suggest to see “NameError while calling the parent class method from another module” for more details.
Function annotation
This allows us to attach metadata to functions describing their parameters and return values. Read at PEP 3107 For example:
python
def kinetic_energy(m:'in KG', v:'in M/S')->'Joules':
return 1/2*m*v**2
# Output: kinetic_energy.__annotations__ returns {'return': 'Joules', 'v': 'in M/S', 'm': 'in KG'}
'{:,} {}'.format(kinetic_energy(20,3000), kinetic_energy.__annotations__['return'])
# Output: 90,000,000.0 Joules'
Tips
Type tilda in MacBook
- You type the accent tilde (shift `) then space: ~
Install Miniconda/Anaconda
- Download it from its website then, in ubuntu
bash FILENAME.sh
- To use Python in zsh
bash
conda update conda
conda init zsh
- To activate conda without showing (base)>
bash
conda activate
or,
bash
conda config --set changeps1 False
- Install packages in a virtual environment
bash
conda install -n tf PackageName
- To see the list of virtual environments
bash
conda env list
Or, you can also use
bash
conda info --envs
- To delete a virtual environment
bash
conda env remove -n tf
Google Collab
- Accessing file from Google drive
python
from google.colab import drive
drive.mount('/content/drive')
- View LaTeX in Jupyter notebook
python
from IPython.display import Math, HTML
display(HTML("<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/"
"latest.js?config=default'></script>"))
Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx')
- Install LaTeX using Jupyter cell in Ubuntu
python
!sudo apt-get update
!sudo apt-get install texlive-full
!sudo apt install texlive-latex-base
!sudo apt install texlive-fonts-extra
Install package from github
bash
pip install git+https://github.com/titipata/arxivpy
Install Manim
Install latex
Install cairo, latex, ffmpeg, and sox by doing these inside Jupyter notebook’s cell:
python
!sudo apt-get install ffmpeg
!sudo apt-get install sox
!sudo apt-get install libcairo2-dev libjpeg-dev libgif-dev python3-dev libffi-dev
!python3 -m pip install pyreadline
!python3 -m pip install pydub
!python3 -m pip install pycairo
!pip install -r requirements.txt
- Clone Manim library
python
!git clone https://github.com/3b1b/manim.git
- Checking!
python
!cd manim
!python3 -m manim example_scenes.py SquareToCircle -pl
!python3 -m manim example_scenes.py OpeningManimExample -pl
Any issues see this Manim Tutorial.
- Writing python file from Google collab notebook
python
%%writefile filename.py
# Write your python code below
print("Visit PhysicsLog.com")
- Viewing the working directory
python
!ls
- Accessing and run python file
python
!python3 filename.py
Running jupyter notebook(or lab) in wsl
- Generate your notebook configbash
jupyter notebook --generate-config
- Edit the file at:
~/.jupyter/jupyter_notebook_config.py
and disable launching browser by redirect file by changing this line toFalse
(default value isTrue
).
Simple HTTP server in Python
bash
python -m SimpleHTTPServer # In python 2
python -m SimpleHTTPServer <port number>
python3 -m http.server # In python 3
Permalink at https://www.rdamodar.com.np/cs-notes/python
Published on May 28, 2021
Last revised on Jul 2, 2023
References