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
JOINsi 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 dictused_bookings = [f(x) for booking in bookings]wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgztar xzf Python-3.9.6.tgzcd Python-3.9.6./configure --enable-optimizations --prefix /chemin/isolé(permet d'installer dans un endroit que l'on pourra supprimer facilement après)makesudo make installalias 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 -ypip 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