IIC2233 / syllabus-2019-2

Repositorio oficial del curso IIC2233 Programación Avanzada 🎉🎊 2019-2
38 stars 56 forks source link

Variables globales. #116

Closed EstebanReyes1998 closed 4 years ago

EstebanReyes1998 commented 5 years ago

Buenas tardes, en el enunciado de la Tarea 01 dice que se descontarán decimas por el uso de variables globales. ¿A que se refieren específicamente con eso? Saludos

jmwielandt commented 5 years ago

Hola!

Una variable global es una variable que puede ser accedida desde diferentes scopes, tanto para leerla como para escribirla. El uso de este tipo de variables es considerado en general una muy mala práctica por varias razones:

En particular dentro del curso, esto es porque va contra toda idea del paradigma de programación orientada a objetos, que es encapsular las variables y métodos dentro de una misma clase especializada que pueda interactuar con otras.

A modo de resumen, lo que se encuentra prohibido es:

Ejemplo de uso de estructuras mutables referenciada varias veces para enviar información ❌
```python class A: def __init__(self, glob): self.glob = glob def send(self, a): self.glob[0] = a def recv(self): return self.glob[0] lista_global = [None] a1 = A(lista_global) a2 = A(lista_global) a1.send(3) print(a2.recv()) # imprime un 3 ```

Saludos!

EstebanReyes1998 commented 5 years ago

Muchas gracias

JuaniAndres commented 5 years ago

hola un pregunta con esto:

uso de variables definidas en el scope global dentro de scopes locales y que no sean las de parametros.py.

Esto significa que yo puedo llamar a algún parámetro del archivo parametros.py dentro de una función (por ejemplo de alguna formula) de manera global sin sufrir descuentos?

jmwielandt commented 5 years ago

Hola @JuaniAndres !

Exacto! Eso se puede.

Saludos~