Como Escribir Código Pythonico
Como Escribir Código Pythonico
● Linters
○ Pylint
○ Flake8
● Formatters
○ Black
○ autopep8
● pre-commits
¡Vamos a Jugar!
https://kahoot.it/
PEP
¿Qué es PEP?
Python Enhancement Proposal (Propuesta de mejora de Python )
https://peps.python.org/pep-0000/
PEP Types
● I — Informational: PEP no normativo que contiene antecedentes, pautas
u otra información relevante para el ecosistema de Python.
● S — Standards Track: PEP normativo con una nueva función para Python,
cambio de implementación para CPython o estándar de
interoperabilidad para el ecosistema
PEP status
Código Estado Descripción
https://peps.python.org/pep-0001/
PEP 8
PEP 8 – Style Guide for Python Code
PEP8 es un documento que proporciona pautas y mejores prácticas
sobre cómo escribir código Python. Fue escrito en 2001 por Guido
van Rossum, Barry Varsovia y Nick Coghlan.
https://peps.python.org/pep-0008/
“Code is read much more often
than it is written.”
— Guido van Rossum
PEP 20 – The Zen of Python
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than «right now».
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
https://peps.python.org/pep-0020/
PEP 8
● Naming Conventions
● Code Layout
● Indentation
● Comments
● Whitespace in Expressions and Statements
https://realpython.com/python-pep8/
Naming Conventions
Variable Use una sola letra, palabra o palabras en minúsculas. x, var, my_variable
Separe las palabras con guiones bajos para mejorar la legibilidad.
Class Comienza cada palabra con una letra mayúscula. No separe las palabras Model, MyClass
con guiones bajos. Este estilo se llama camel case o pascal case.
Constant Use una sola letra, palabra o palabras en mayúsculas. CONSTANT, MY_CONSTANT,
Separe las palabras con guiones bajos para mejorar la legibilidad. MY_LONG_CONSTANT
Permite al lector distinguir entre dos líneas de código y una sola línea de
código que abarca dos líneas.
Dónde poner los cierres
Las continuaciones de línea le permiten romper líneas dentro de
paréntesis, corchetes o llaves.
Las reglas más importantes que se aplican a las cadenas de documentación son las
siguientes:
● Rodee las cadenas de documentación con tres comillas dobles a cada lado, como
en """Este es un Documentation Strings""".
● Escríbalos para todos los módulos, funciones, clases y métodos públicos.
● Ponga el """ que finaliza una cadena de documentación multilínea en una sola línea.
● Para cadenas de documentos de una línea, mantenga el """ en la misma línea.
Whitespace in Expressions
and Statements
“Sparse is better than dense.”
● Pylint
● Flake8
Instalación
● autopep8
● black
Instalación
https://pre-commit.com/
Pre-commits
Un pre-commit (pre-commit hook) es una función o script que se
ejecuta automáticamente antes de confirmar (commit) los
cambios en un sistema de control de versiones, como Git. Su
propósito es realizar diversas comprobaciones o acciones en los
archivos modificados antes de que se registren en el repositorio.
Instalación