Python Language
Modismos
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()