type()
print()
- Ne fonctionne dans un test que s'il est rouge
print(obj.__dict__)
ouprint(vars(obj))
help(method)
dir(intance_dune_classe)
intance_dune_classe.__dict__
=> affiche tous les attributs- Méthodes spéciales
self
=this
""" docstring """
def method_static(cls)
avecclassmethod(method_static)
- On peut typer et mettre une valeur par défaut à un paramètre de fonction/méthode
_ma_methode
=> privée (par convention)class Payment(PcObject, Model)
=> héritage- EXISTS vs JOIN and use of EXISTS clause
- Garder
JOIN
si c'est 1 pour 1
- Garder
*
est comme un spread en JavaScript- Les listes, délimitées par les crochets [ et ]
- Les tuples, délimités par les parenthèses ( et )
- Les dictionnaires, délimités par les accolades { et }
print(str(query.statement.compile(compile_kwargs={"literal_binds": True})))
- package vs module
- What is the meaning of single and double underscore before an object name?
booking_ids_subquery = _query_keep_on_non_activation_offers() \
.distinct(Booking.stockId) \
.filter(Booking.userId == user_id) \
.order_by(Booking.stockId, Booking.isCancelled, Booking.dateCreated.desc()) \
.with_entities(Booking.id) \
.subquery()
return Booking.query \
.filter(Booking.id.in_(booking_ids_subquery)) \
.join(Stock) \
.order_by(Stock.beginningDatetime) \
.all()
path = f'{os.path.dirname(os.path.realpath(__file__))}/../static/tuto_mediations'
with open(path, 'w') as file:
# ...
before = datetime.utcnow()
# Insère ici la fonction à mesurer
after = datetime.utcnow()
elapsed_time = after - before
print('------------------ ??? ------------------')
print(divmod(elapsed_time.total_seconds(), 60))
# C'est mieux d'utiliser cette syntaxe
# https://www.artima.com/weblogs/viewpost.jsp?thread=98196
used_bookings = [booking for booking in bookings if booking.isUsed]
# equal to
used_bookings = filter(lambda booking: booking.isUsed, bookings)
# Add list() to transform to dict
used_bookings = [f(x) for booking in bookings]
wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
tar xzf Python-3.9.6.tgz
cd Python-3.9.6
./configure --enable-optimizations --prefix /chemin/isolé
(permet d'installer dans un endroit que l'on pourra supprimer facilement après)make
sudo make install
alias python=”python3.9”
à .bashrc
S'il manque des librairies systèmes alors il faut les installer via apt
et refaire la manipulation ci-dessus.
pip3 install virtualenv (relancer un terminal) (si nouvelle version de python installée)
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -e . (là pù il y a le setup.py)
deactivate
pip3 freeze | xargs pip3 uninstall -y
pip show [package]
- Il faut mettre dans un fichier Python
from algolia import *
puis, dans le _init_.py de ce modulefrom algolia.domain.eligibility import *
et enfin lancerpython -i mon_fichier_avec_import.py
- Le CLI de Python a déjà de l'autocomplete des fonction built-in
python3 -m http.server 1337
# singleton-comparison
filter((User.isCreated == True)) => filter((User.isCreated.is_(True)))
filter((User.isCreated != False)) => filter((User.isCreated.isnot(False)))
"If you want your code to run faster, you should probably just use PyPy."
-- Guido van Rossum (creator of Python)
- Importmagic
- Python
- Pylance
- il faut prendre l'environnement local pour qu'il prenne en compte la configuration du projet