Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
wiki2:python:code_notes [2016/08/14 11:53] alfred |
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 29: | Línea 29: | ||
| mod = getattr(mod, comp) | mod = getattr(mod, comp) | ||
| return mod | 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> | ||