Buscar..


Inicializaciones clave del diccionario

Prefiera el método dict.get si no está seguro si la clave está presente. Le permite devolver un valor predeterminado si no se encuentra la clave. El método tradicional dict[key] generaría una excepción KeyError .

En lugar de hacer

def add_student():
    try:
        students['count'] += 1
    except KeyError:
        students['count'] = 1

Hacer

def add_student():
        students['count'] = students.get('count', 0) + 1

Variables de conmutacion

Para cambiar el valor de dos variables puede usar el desempaquetado de la tupla.

x = True 
y = False 
x, y = y, x 
x
# False 
y
# True

Use la prueba de valor de verdad

Python convertirá implícitamente cualquier objeto a un valor booleano para la prueba, así que úsalo siempre que sea posible.

# Good examples, using implicit truth testing
if attr:
    # do something

if not attr:
    # do something

# Bad examples, using specific types
if attr == 1:
    # do something

if attr == True:
    # do something

if attr != '':
    # do something

# If you are looking to specifically check for None, use 'is' or 'is not'
if attr is None:
    # do something

Esto generalmente produce un código más legible, y generalmente es mucho más seguro cuando se trata de tipos inesperados.

Haga clic aquí para obtener una lista de lo que se evaluará como False .

Prueba de "__main__" para evitar la ejecución inesperada del código

Es una buena práctica probar la variable __name__ del programa que llama antes de ejecutar su código.

import sys

def main():
    # Your code starts here

    # Don't forget to provide a return code
    return 0

if __name__ == "__main__":
    sys.exit(main())

El uso de este patrón asegura que su código solo se ejecute cuando espera que lo sea; por ejemplo, cuando ejecuta su archivo explícitamente:

python my_program.py

Sin embargo, el beneficio viene si decide import su archivo a otro programa (por ejemplo, si lo está escribiendo como parte de una biblioteca). Luego puede import su archivo, y la trampa __main__ se asegurará de que no se ejecute ningún código inesperadamente:

# A new program file
import my_program        # main() is not run

# But you can run main() explicitly if you really want it to run:
my_program.main()


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow