Aprende a encapsular lógica en funciones y a controlar el flujo en Python con claridad. Aquí verás cómo usar la palabra clave global, entender el scope o namespace, crear una función auxiliar "privada" con underscore y aplicar la convención de dejar dos líneas entre funciones. Además, se muestra cómo listar clientes antes y después de una operación para verificar cambios.
¿Cómo encapsular lógica con funciones en Python?
Encapsular evita repetir código y hace el programa más legible. Se propone mover la lógica de “añadir un cliente” a una función llamada create_client que recibe el parámetro client_name y modifica la variable global clients mediante la palabra clave global. Se sugiere crear una función auxiliar _add_coma para añadir la coma al final del registro.
# Se asume que 'clients' es una variable global previamente declarada.
def create_client(client_name):
global clients
# Añade el nombre del cliente a 'clients'.
# Ejemplo (según la estructura de 'clients'):
# clients += client_name
_add_coma()
pass
def _add_coma():
global clients
# Añade una coma al final del registro de clientes.
# Ejemplo:
# clients += ','
pass
- Encapsulación en funciones para modularidad.
- Parámetros claros: client_name.
- Uso correcto de global para variables compartidas.
- Función "privada" con underscore para tareas auxiliares.
- Convención: dos líneas en blanco entre funciones.
¿Qué es una variable global y el scope o namespace?
Una variable global como clients no es accesible dentro de una función sin declarar global. Esto se debe al scope o namespace: cada función tiene su propio alcance y no ve las variables externas a menos que se indique. Por eso, sin global, el código “no va a correr” y mostrará un error al intentar modificar clients.
- global permite usar y modificar la variable definida fuera de la función.
- scope o namespace: límite de visibilidad de variables.
- Evitar errores por acceso a variables no visibles.
¿Cómo crear una función privada auxiliar con underscore?
Una función con underscore inicial (_add_coma) indica utilidad interna. Sirve para aislar una acción pequeña y repetible, como agregar una coma al final. Esto mejora la legibilidad y mantiene el propósito de cada función claro.
- underscore comunica uso interno.
- Separación de responsabilidades.
- Código más limpio y fácil de probar.
¿Cómo controlar el flujo de ejecución y mejorar la legibilidad?
El flujo ya no es solo de arriba hacia abajo: se orquesta llamando funciones en el orden deseado. Se propone listar los clientes antes y después de crear uno nuevo para confirmar la modificación de la variable global. También se resalta la convención de Python de dejar dos líneas en blanco entre definiciones de funciones para mejor lectura.
def list_clients():
global clients
print(clients)
pass
# Flujo controlado: listar antes y después.
list_clients() # Lista el estado inicial.
create_client('David') # Añade un nuevo cliente.
list_clients() # Verifica el cambio.
- Control del flujo mediante llamadas a funciones.
- Verificación del estado antes y después de una operación.
- Legibilidad con formato consistente.
¿Cómo listar clientes antes y después de una operación?
La función list_clients imprime el estado de clients. Al llamarla antes y después de create_client, se observa la diferencia y se valida que la operación realmente modificó la variable global.
- Observabilidad del cambio en tiempo de ejecución.
- Feedback inmediato de la operación.
- Impresión simple para depuración.
¿Qué herramientas y prácticas se usaron en la terminal?
Se menciona el uso de vim para abrir el archivo (comando similar a “vim main py”) y la ejecución del script desde la terminal (“Main py”). Además, se muestra cómo partir la pantalla con Tmux para ver código y salida a la vez, lo que acelera la revisión.
- Edición rápida con vim.
- Ejecución directa desde la terminal.
- Pantalla dividida con Tmux para monitoreo.
¿Tienes dudas sobre global, scope o la organización del flujo? Comparte tu pregunta o tu fragmento de código en los comentarios y seguimos la conversación.