Básicos del Lenguaje

1

Guía de instalación y conceptos básicos

2

Archivos y slides del curso práctico de Python

3

IMPORTANTE: Instalando Ubuntu Bash en Windows para facilitarte el seguimiento del curso desde Windows.

4

¿Qué es la programación?

5

¿Por qué programar con Python?

6

Operadores matemáticos

7

Variables y expresiones

8

Presentación del proyecto

9

Funciones

10

Usando funciones en nuestro proyecto

11

Operadores lógicos

12

Estructuras condicionales

Uso de strings y ciclos

13

Strings en Python

14

Operaciones con Strings en Python

15

Operaciones con strings y el comando Update

16

Operaciones con strings y el comando Delete

17

Operaciones con strings: Slices en python

18

For loops

19

While loops

20

Iterators and generators

Estructuras de Datos

21

Uso de listas

22

Operaciones con listas

23

Agregando listas a nuestro proyecto

24

Diccionarios

25

Agregando diccionarios a nuestro proyecto

26

Tuplas y conjuntos

27

Tuplas y conjuntos en código

28

Introducción al módulo collections

29

Python comprehensions

30

Búsquedas binarias

31

Continuando con las Búsquedas Binarias

32

Manipulación de archivos en Python 3

Uso de objetos y módulos

33

Decoradores

34

Decoradores en Python

35

¿Qué es la programación orientada a objetos?

36

Programación orientada a objetos en Python

37

Scopes and namespaces

38

Introducción a Click

39

Definición a la API pública

40

Clients

41

Servicios: Lógica de negocio de nuestra aplicación

42

Interface de create: Comunicación entre servicios y el cliente

43

Actualización de cliente

44

Interface de actualización

45

Manejo de errores y jerarquía de errores en Python

46

Context managers

Python en el mundo real

47

Aplicaciones de Python en el mundo real

Conclusiones finales

48

Python 2 vs 3 (Conclusiones)

Clases bonus

49

Entorno Virtual en Python y su importancia: Python en el mundo real

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
1 Hrs
18 Min
35 Seg

Context managers

46/49

Lectura

Los context managers son objetos de Python que proveen información contextual adicional al bloque de código. Esta información consiste en correr una función (o cualquier callable) cuando se inicia el contexto con el keyword with; al igual que correr otra función cuando el código dentro del bloque with concluye. Por ejemplo:

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 19

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Otro gran ejemplo de context managers (sin caer en el razonamiento circular usando “open” para crean un “custom_open”)
es el verlo como una implementacion de tareas de shell, pero en python (imaginate escribiendo el “setup.py” de un server linux)

Han notado como es muy sencillo escribir en shell:

cd /path/to/project
coolShellCommand -xyz
cd -

Pero en python se necesita implementar algo como esto:

cwd = os.getcwd()

try:
	os.chdir('path/to/project')
	os.system('coolShellCommand -xyz')
finally:
	os.chdir(cwd)

Lo cual se ve bastente feo y desordenado, seria genial escribir algo como:

with os.chdir('path/to/project/'):
	os.system('coolShellCommand -xyz')

Pero no existe, asi que creemoslo nosotros:

class cdContextMgr(ob­jec­t):
    def __init__(­self, new_dir):
        self­.new_dir = new_dir
        self­.old_dir = None

    def __en­ter__(­self):
        self­.old_dir = os­.getcwd()
        os­.chdir(­self.new_dir)

    def __ex­it__(­self, *_):
        os­.chdir(­self.old_dir)

y asi podemos utilizar:

with cdContextMgr('/path/to/project')
	os.system('coolShellCommand -xyz')

Esto hace lo mismo que al principio, nos evitamos duplicar codigo y aprendemos sobre conext managers

Python esta lleno de trucos que casi parecen mágia.

Hola estimado David (@jdaroesti), me encanta la forma en la que explicas y enseñas, desde el curso pasado soy tu fan.
Sin embargo encontré en el presente artículo algo que podría mejorar:

En el primer ejemplo sobre el uso de with pegaste with con open, lo que ocasionará en la práctica un error de sintaxis.

withopen(‘some_file.txt’) as f:
    lines = f.readlines()

Siento que fue un error de dedo, pero que podría confundir a las personas que comienzan con el lenguaje.

La forma correcta del primer ejemplo sería:

with open(‘some_file.txt’) as f:
    lines = f.readlines()

El mismo detalle ocurre en el ejemplo siguiente en la línea:

classCustomOpen(object):def__init__(self, filename):

Lo correcto sería:

class CustomOpen(object):def__init__(self, filename):

Ojalá no me vea muy chocoso con éste comentario, pero siento que tu calidad como profesional de python, es muy alta y éste pequeño error podría quitar coherencia a tu imagen.

Excelente curso, ojalá fueras mentor de otros cursos de programación como javascript.

Saludos.

creo que comprendi, tengo que practicarlo mas

from contextlib import contextmanager

class CustomOpen(object):
	def __init__(self, filename):
		self.file = open(filename)

	def __enter__(self):
		return self.file

	def __exit__(self, ctx_type, ctx_value, ctx_traceback):
		self.file.close()


def read_file(filename):
	with CustomOpen(filename) as f:
		contents = f.read()
	return contents


@contextmanager
def custom_open(filename):
	f = open(filename)
	try:
		yield f
	finally:
		f.close()


if __name__ == '__main__':
	## custom = CustomOpen('operaciones_con_listas.py')
	custom_open('operaciones_con_listas.py')
	print(read_file('operaciones_con_listas.py'))
	print('-'*30)
	```

me gustó mucho esta información… de hecho siento que por fin voy entendiendo como funciona el lenguaje por dentro… animo a todos a seguir aprendiendo 😄

En palabras para mortales, los contextos son una función decoradora que ayuda a ejecutar código antes y después de código que les pasemos.

En otras palabras, el protocolo de gestor de contextos definidos en el PEP 343 permite la extracción de la parte aburrida de la estructura try…except…finally en una clase separada manteniendo solo el bloque de interés do_something.

Primero se llama al método enter. Puede devolver un valor que será asignado a var. La parte as es opcional: si no está presente, el valor devuelto por enter será ignorado.
El bloque de código bajo with se ejecutará. Como si fueran condiciones try. Se podrá ejecutar con éxito hasta el final o, si algo falla, puede break, continue` o return o lanzar una excepción. Pase lo que pase, una vez que el bloque ha finalizado, se producirá una llamada al método exit. Si se lanzó una excepción, la información se manda a exit, el cual se describe en la siguiente subsección. En el caso normal, las excepciones podrían ser ignoradas como si fueran una condición finally y serían relanzadas después de que finalice exit.

Excelente ejemplo

Esta clase me voló la cabeza. Ahora entiendo cómo funciona el with perfectamente.

Excelente info

En que otros ambitos o casos podemos usar el context manager

Genial, excelente información.

Los métodos init, enter y exit los entendí como los React lifecycles jajaa

Las 2 ultimas clases del módulo muy vagas en información pero son conceptos de python muy interesantes y geniales. Gracias a la comunidad por los recursos adicionales 🤠

se explica en algún momento de este curso o del curso de python el uso de yield?

Estos cursos de hace años eran como “haz el curso en max 50 clases que contenga todos estos temas” Empiezan bien y terminan de afán.

sigamos aprendiendo

Excelente lectura realmente la entendi a la perfeccion.