225 private links
Note : le framework falcon permet de créer des API web rapidement
Très bien décrit !
OK !
Le truc tricky :
Pour faire simple, disons que les closures en Python sont en lectures seules, à moins qu’on précise explicitement avec nonlocal qu’on va utiliser une variable qui n’est pas locale et qu’on va la modifier.
Remarque de outsmirkable :
Cet article est complètement faux. Il y a confusion entre variable globale et closure. Une closure n’est pas une variable, c’est une FONCTION.
Son exemple de code est très pertinent et permet de démontrer l'utilité des closures (ou mieux: clôture)
Des variables, des portées et des clôtures...
De l'initialisation du programme à la compilation
Un guide sur les descriptors (data descriptors, non-data descriptors)
J'avais noté pleins de petits détails pratique.
À cause d'une erreur de token entre le serveur Shaarli et l'extension Firefox (j'ai ouvert pleins de petites fenêtres Shaarli)... Tant pis :)
Les slides sont abordables :D
Les débuts d'un framework qui utilise le typage dynamique en python.
Des slides sur les bonnes pratiques à avoir en python
Les slides de la présentation de Dabid Beazley : Python 3 Metaprogramming; lors de la PyCon'2013
Mind blowing :D
En prenant l'exemple de la fonction la plus simple du monde :
# Fonction nommée
def foo(x):
return x
# Fonction anonyme (ou simplement lambda)
bar = lambda x: x
Le bytecode généré en python est identique.
2 0 LOAD_FAST 0 (x)
2 RETURN_VALUE
Les différentes simulations montrent que jouer avec son argent au casino conduit à le perdre à long terme.
Les exemples de code présentés sont en python <3 mais 2.7 :'(
Programmation concurrente en python avec asyncio <3
Un moyen d'effectuer une simple énumération est la suivante :
class Animal:
DOG, CAT, BEE, ANT = range(4)
ce n'est pas safe (Animal.DOG == 0 return True, ...) mais ça fait bien le café pour clarifier des scripts :)
<3 python
La PEP 572 : Assignment Expressions is useful in the following examples :
-
avoiding inefficient comprehensions
foo = [y := f(x), y*y, y*y*y]
-
unnecessary variables in scope
for x in data: result = f(x) if result: foo.append(result) # Turned into results = [ result for x in data if (result := f(x)) ]
-
processing streams in chunks
while chunk := file.read(8192): process(chunk)
-
Avoiding unecessary lines
group = match.group(1) if (match := re.match(data)) else None
Avec ces arguments, l'opérateur semble être une bonne amélioration pour le langage