Foros del Web » Programando para Internet » Python »

como usar variables en modulos

Estas en el tema de como usar variables en modulos en el foro de Python en Foros del Web. necesito saber como usar las variables globales en un modulo llamado creado por mi por favor q estoy perdido en este tema...
  #1 (permalink)  
Antiguo 13/02/2010, 16:52
 
Fecha de Ingreso: septiembre-2009
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
como usar variables en modulos

necesito saber como usar las variables globales en un modulo llamado creado por mi
por favor q estoy perdido en este tema
  #2 (permalink)  
Antiguo 13/02/2010, 18:26
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: como usar variables en modulos

Te recomiendo leer locals and globals del libro "dive into python"

En caso de no saber ingles, te traduzco la parte importante.

Cita:
Iniciado por Dive into Python
Cuando una linea de código pregunta por el valor de la variable x, Python buscara esta variable en todos los namespaces (nombre de espacio) disponibles, en el siguiente orden:

local namespace (nombre de espacio local) - Espefica a la función o método de clase actual. Si la funcion define una variable local x, o tiene un argumento x, Python usara esta y dejara de buscar.

global namespace (nombre de espacio global) - Especifica al modulo actual. Si el modulo tiene definido la variable, función o clase llamada x, Python usara esta y dejara de buscar.

built-in namespace (nombre de espacio integrado)- Global en todo los módulos. Como ultimo recurso, Python asumirá que x es el nombre de una built-in función o variable
  #3 (permalink)  
Antiguo 14/02/2010, 08:52
 
Fecha de Ingreso: septiembre-2009
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: como usar variables en modulos

Este el el modulo que importo
Código:
def ruleta(puntos):
    import random
    rul=['mas50', 'menos40']
    n=random.choice(rul)
    
    if n=='mas50':
        puntos=puntos+50
        print puntos
        
    else:
        puntos=puntos-40
        print puntos
esta correcto?
En el programa
puntos=100
cuando entra al modulo los puntos bajan o suben pero cuando salen vuelven a 100 hay alguna forma de que puntos se quede con el valor que el modulo lo dejo?

Última edición por n0thing_058; 14/02/2010 a las 09:39
  #4 (permalink)  
Antiguo 14/02/2010, 11:27
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: como usar variables en modulos

Código Python:
Ver original
  1. #MiModulo.py
  2. from random import choice
  3. def ruleta():
  4.     global puntos
  5.     rul = ['mas50', 'menos40']
  6.     n = choice(rul)
  7.    
  8.     if n == 'mas50':
  9.         puntos += 50
  10.         print puntos
  11.     else:
  12.         puntos -= 40
  13.         print puntos

Código Python:
Ver original
  1. #Main.py
  2. import MiModulo
  3. puntos = 100
  4. MiModulo.ruleta()

Claro que usar globals es una practica no muy bien vista por lo que te recomiendo
Código Python:
Ver original
  1. #MiModulo.py
  2. from random import choice
  3. def ruleta(puntos):
  4.     rul = ['mas50', 'menos40']
  5.     n = choice(rul)
  6.     if n == 'mas50':
  7.         puntos += 50
  8.     else:
  9.         puntos -= 40
  10.     print puntos
  11.     return puntos
Código Python:
Ver original
  1. import MiModulo
  2. puntos = 100
  3. puntos = MiModulo.ruleta(puntos)
  #5 (permalink)  
Antiguo 14/02/2010, 21:40
 
Fecha de Ingreso: septiembre-2009
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: como usar variables en modulos

Gracias.
como la segunda forma es perfecta.

Etiquetas: modulos, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:28.