Ver Mensaje Individual
  #10 (permalink)  
Antiguo 21/04/2014, 18:00
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Bugs y errores de diseño del lenguaje Python

Emmm...si... estoy viendo que..... la definicion de "local" y "global" cambia por completo respecto de por ejemplo PHP:

Código PHP:
Ver original
  1. <?php
  2.  
  3. function cajanegra()
  4. {
  5.     $c = 3;
  6.     print($a);
  7.     print($b);
  8.     print($c); 
  9. }  
  10.  
  11. $a = 1;
  12. $b = 2;
  13. cajanegra();
  14.  
  15. /*
  16. Notice: Undefined variable: a in C:\xampp\htdocs\pruebas\test.php on line 6
  17.  
  18. Notice: Undefined variable: b in C:\xampp\htdocs\pruebas\test.php on line 7
  19. 3
  20. */

Alla.... se es local local dentro de una funcion..... y se es global si se declara explicitamente dentro de la funcion como global

Gracias...... me hacia falta que me dieran unas cuantas cachetadas para despertar :P

---
Lo que si.... me parece que Python viola el principio de encapsulamiento:

Código Python:
Ver original
  1. # Ejemplo 8
  2.  
  3. def cajanegra():
  4.     c = 3
  5.     print(b)
  6.     b = 5
  7.  
  8. a = 1
  9. b = 2
  10. cajanegra()

No veo como las variables dentro de una funcion no puede llevar cualquier nombre incluso el mismo que el de variables "globales"... creo hubiera sido preferible que ese caso... automaticamente se conviertieran en locales (dejaran de ser globales) sin mas conflictos.... al menos en otros lenguajes interpretados no hay problemas de resolucion como aca de graves.
__________________
Salu2!

Última edición por Italico76; 21/04/2014 a las 18:16