Herramientas de usuario

Herramientas del sitio


wiki2:python:code_notes

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
wiki2:python:code_notes [2016/08/08 16:52]
alfred [Getters & setters]
wiki2:python:code_notes [2020/06/20 10:02] (actual)
Línea 1: Línea 1:
-====== Python ​code notes ======+====== Python ​snippets ​======
 ===== Getters & setters ===== ===== Getters & setters =====
 <code python> <code python>
Línea 19: Línea 19:
 from exceptions import Warning from exceptions import Warning
 warnings.simplefilter('​ignore',​ Warning) warnings.simplefilter('​ignore',​ Warning)
 +</​code>​
 +
 +===== Import a class from string =====
 +<code python>
 +def dynamic_import(name):​
 +    components = name.split('​.'​)
 +    mod = __import__(components[0])
 +    for comp in components[1:​]:​
 +        mod = getattr(mod,​ comp)
 +    return mod
 +</​code>​
 +
 +===== Tricks =====
 +<​code>​
 +# Different ways to test multiple
 +# flags at once in Python
 +x, y, z = 0, 1, 0
 +if x == 1 or y == 1 or z == 1:
 +    print('​passed'​)
 +if 1 in (x, y, z):
 +    print('​passed'​)
 +# These only test for truthiness:
 +if x or y or z:
 +    print('​passed'​)
 +if any((x, y, z)):
 +    print('​passed'​)
 +</​code>​
 +
 +===== Conditional tricks (Short circuit) =====
 +You can use the conditional operators ''​and''​ and ''​or''​ for deciding how to execute code. Next piece won't print ''​hola''​.
 +<​code>​
 +def foo():
 +    print('​hola'​)
 +    ​
 +False and foo()
 +</​code>​
 +
 +===== See the low level actions =====
 +
 +We can see the low level actions of a function with the ''​dis''​ package:
 +
 +<code python>
 +>>>​ def func(a):
 +...     a += 10
 +...     ​return a
 +... 
 +>>>​ import dis
 +>>>​ dis.dis(func)
 +  2           0 LOAD_FAST ​               0 (a)
 +              3 LOAD_CONST ​              1 (10)
 +              6 INPLACE_ADD ​        
 +              7 STORE_FAST ​              0 (a)
 +
 +  3          10 LOAD_FAST ​               0 (a)
 +             13 RETURN_VALUE ​
 </​code>​ </​code>​
wiki2/python/code_notes.1470675146.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)