elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Variables que no se guardan fuera de funcion (Python)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Variables que no se guardan fuera de funcion (Python)  (Leído 3,589 veces)
abreu20011

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Variables que no se guardan fuera de funcion (Python)
« en: 3 Octubre 2012, 20:05 pm »

Saludos,

La verdad es que ya no sé si me esta tomando el pelo o qué pasa aquí. Estoy programando bajo la API de Autodesk Maya sobre Python algo muy, muy básico: cambiar el valor de una variable mediante una función.

Pero mi asombro y mi desesperación es que, si cambio el valor de la variable desde dentro de la función (en teoría, es una variable creada FUERA de la función, por lo que debería ser global) y sin salir de la función, le digo que me haga un print del valor... funciona.

Pero en cuanto llamo a la misma variable (se supone, ya modificada) desde otra función, no hace nada. Simplemente, deja el valor con el que fue creada la variable :(

Es como si creara una segunda variable en mi función o no guardara nada o no sé qué u.u

¿Alguna sugerencia?

Código:
import maya.cmds as mc

variable = '_MAL_'
collection1 = mc.radioCollection()

ventana = mc.window(t = 'a')
mc.columnLayout(adj = True)

mc.radioButton(l = 'A', cl = collection1, onc = 'F1()')
mc.radioButton(l = 'B', cl = collection1, onc = 'F2()')
mc.button(l = 'ver', c = 'Ver()')

mc.showWindow(ventana)

def F1():
    variable = 'A'
    print 'variable modificada a A'
    print 'valor leido desde F1(): ' + variable

def F2():
    variable = 'B'
    print 'variable modificada a B'
    print 'valor leido desde F2(): ' + variable
    
def Ver():
    print variable

Un saludo y gracias!


« Última modificación: 3 Octubre 2012, 20:07 pm por abreu20011 » En línea

abreu20011

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Re: Variables que no se guardan fuera de funcion (Python)
« Respuesta #1 en: 4 Octubre 2012, 20:33 pm »

Por favor, que alguien me ayude, cualquiera idea me vendrá bien :)


En línea

@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: Variables que no se guardan fuera de funcion (Python)
« Respuesta #2 en: 4 Octubre 2012, 21:53 pm »

1. Te recomiendo no usar globales, usa alguna clase con getters y setters. Luego si me animo te pego algún ejemplo.

2. Para modificar una global dentro de una función, utiliza
Código
  1. global tuvariable
y luego la modificas dentro de la función. Python se crea una copia local de la variable en la función, por eso no te funciona.
En línea

abreu20011

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Re: Variables que no se guardan fuera de funcion (Python)
« Respuesta #3 en: 5 Octubre 2012, 16:04 pm »

Gracias Daemon :)

Estoy mirando algunas cosas que me has pasado porque me huelo que me voy a tener que crear una clase para esa información. Cosa que me parece un poco exagerada, pero bueno...

Gracias ^^
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines