Gracias Gracias:  0
Página 2 de 2 PrimerPrimer 12
Resultados 16 al 18 de 18

Tema: Python Como nombrar objetos si los creo en un for

  1. #16
    Vampiro Giovanni Avatar de Pepius
    Fecha de ingreso
    Feb 2004
    Ubicación
    Guadassuar, Valencia
    Mensajes
    4,998

    Re: (Python)Cómo nombrar objetos si los creo en un for

    No, eso no puedes hacerlo nunca de la vida. No puedes referenciar a otras variables con una string. Lo que tienes que hacer es lo que te digo más arriba. Esto es:

    -Creas un nuevo array, a parte del de los atributos, que va a contener las instancias.

    -Entonces rellenas dicho array con las instancias con algo del palo de:
    (las barras bajas son identaciones)

    for i in range(len(array_atributos))
    ____ array_instancias[i] = Coche(array_atributos[i])

    Tras esto, el array instancias contendra algo como esto:

    array_instancias = [instancia_coche1,instancia_coche2,...]

    Así pues, cada elemento del array será una instancia con los atributos correspondientes.

    Porque hacerlo así? Porque tu no puedes crear variables nuevas con nombres seqüenciales al vuelo.

    Ahora, para acceder a la instancia que tu quieras, no lo haces como coche1.loquesea, sino como array_instancias[0].

    Espero que sea lo que buscas.

  2. #17
    Senior Member Avatar de Sayden
    Fecha de ingreso
    Dec 2007
    Ubicación
    Pepino´s Land
    Mensajes
    681

    Re: (Python)Cómo nombrar objetos si los creo en un for

    Vale, sorry por tardar tanto en contestar pero hasta esta noche no he podido ponerme con Eclipse otra vez.

    Es como dices tú Pepius, "no puedo hacerlo nunca de la vida" (me ha hecho gracia). No sabía que no podía hacer eso.

    Lo he hecho ahora como has dicho tú. Ahora tengo un array (lista) con los objetos luz y sus atributos dentro y a los que puedo acceder mediante listaLuces[i]

    Simplemente estoy haciendo una ventana donde se muestren todas las luces con un slíder para controlar su intensidad, pero todo en la misma ventana, sin tener que usar el "Attribute Spread Sheet"

    Esta genial, el fallo que le veo haciéndolo así es que si quiero seguir implementandole cosas, me va a costar mas, por eso quería hacerlo con una clase propia, para tener más orden y control sobre el script. ¿Ahora lo que tendría que hacer es una clase que heredará las propiedades de los objetos luces y "borrara" los atributos que no me sean necesarios para el scriptí

    De todas formas, gracias a todos de verdad. Sois de gran ayuda. Cuando termine de hacer el script con Python para Maya quiero hacerlo para Max y usarlo en el curro (aunque lo veo más complicado sin "poder" usar Python de forma sencilla)
    "Todo el mundo necesita un Grid en su vida"
    - Will Cunningham "The Magic Of Houdini"

    Mis blogs:
    http://houdini3d.blogspot.com - Blog dedicado a Houdini
    http://mariocaster.blogspot.com - Blog dedicado al 3D en general

    ¿Quieres aprender Renderman, el motor de render de Pixar?

  3. #18
    · Avatar de pedropp
    Fecha de ingreso
    Jun 2005
    Mensajes
    1,257

    Re: (Python)Cómo nombrar objetos si los creo en un for

    hola. No he entendido muy bien el problema de fondo, pero respecto a las "listas con nombre" que querías hacer, creo que lo que buscas son diccionarios (en vez de arrays)



    En el código que ponías en el mensaje #6

    luz = {}
    for i in tuplaLuces:
    intensidad = cmds.getAttr(i + ".intensityMult")
    color...
    subdivisiones....
    luz[i] = Luces(intensidad, color, subDivisiones)


    tendrías un diccionario "luz", y accedería con
    luz['nombre_de_una_luz']
    luz['otra']
    .
    en vez de
    luz[0]
    luz[1]
    . . .


    Por lo demás, siempre puedes crear variables con nombres definidos "en tiempo de ejecución". Por ejemplo:

    for i in range(10):
    locals()['variable'+str(i)] = None

    # esto te creara variable0, variable1, variable2, .



    Y en el caso de objetos, tienes la función setattr() para lo mismo

    for i in range(10):
    setattr(unObjeto, "variable" + str(i), None)

    # creara unObjeto.variable0, unObjeto.variable1, unObjeto.variable2, .


    ___
    "La vida es como el tetris, cuando llegan los palos no sabes como encajarlos"
    [SIGPIC][/SIGPIC]

Página 2 de 2 PrimerPrimer 12

Temas similares

  1. Blender Detectar objetos con ratón python bge
    Por Juani en el foro Programación y Scripts
    Respuestas: 2
    Último mensaje: 11-11-2015, 23:10
  2. Rhinoceros como creo sombras
    Por Luks_carp en el foro Render, Iluminación y Cámaras
    Respuestas: 0
    Último mensaje: 03-04-2011, 01:46
  3. Nombrar objetos hechos a mano de nombre serial
    Por juliux en el foro Programación y Scripts
    Respuestas: 2
    Último mensaje: 10-07-2009, 18:28
  4. Respuestas: 5
    Último mensaje: 11-03-2008, 18:58
  5. Como creo una encuesta
    Por Gepetto en el foro Ayuda con el uso del foro
    Respuestas: 1
    Último mensaje: 02-11-2006, 01:25

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •