[Gvsig_usuarios] Duda con scripting

Carlos kronosir en gmail.com
Mie Mayo 6 19:26:44 CEST 2020


Hola

Muchas gracias Javier, por la detallada explicación.

Efectivamente ese era el problema, usar paréntesis en lugar de 
corchetes, sí que me estreno bien con un script...

Así que resuelto, muchas gracias de nuevo

Saludos

Carlos

El 6/5/20 a las 18:27, José Olivas escribió:
> Saludos;
>
> El error " object is not callable in <script> at line number..." de 
> debe a que estas haciendo una llamada a un elemento que no lo permite. 
> Solo las funciones o clases pueden ser llamadas. Un ejemplo de lo 
> anterior sería el siguiente;
>
> >>x=12
> >>print x()
>
> Estas dos líneas de código devuelven el mismo error; TypeError: 'int' 
> object is not callable in <script> at line number... ya que se está 
> haciendo la llamada a un entero, lo cual no es posible.
>
> El error localizado en la línea 16 se debe a la forma con la que 
> tratas los elementos de la lista views. Las listas son una estructura 
> de datos que nos permiten almacenar información sea del tipo que sea, 
> y acceder a esta mediante la utilización de índices. Un ejemplo de 
> lista sería el siguiente;
>
> >>lista=[1,2,3,4]
>
> La variable lista almacena una lista de 4 enteros, de modo que la 
> lista presenta 4 índices que van desde el 0 hasta el 3. La forma 
> correcta de utilizar esos índices en la llamada a elementos de una 
> lista se realiza utilizando lo corchetes ([...]).  De modo que si 
> queremos conseguir el valor del primer elemento de la lista lo 
> obtendremos con la siguiente expresión a=lista[0]. Si queremos obtener 
> el tercer valor, es decir el número 3, lo obtendremos con la siguiente 
> expresión b=lista[2]. Si queremos obtener el último valor lo 
> conseguiremos con la expresión c=lista[3] o c=lista[-1].
>
> Revisa utilizar corchetes y no paréntesis para acceder a los elementos 
> cuando utilizas las listas views y layers.
>
> Espero haberte sido de ayuda.
>
>
> José Olivas Carriquí.
>
> On Fri, May 1, 2020 at 1:37 PM Carlos <kronosir en gmail.com 
> <mailto:kronosir en gmail.com>> wrote:
>
>         Hola
>
>         Estoy haciendo un pequeño script que saque como resultado la
>     estructura de un proyecto, con las vistas que existen y las capas
>     que hay en cada vista. Me estoy iniciando en el scripting, así que
>     he buscado algo sencillo. El objetivo es tener el título del
>     proyecto y a continuación el nombre de cada vista con las capas
>     que contiene.
>
>         Me he basado en la Documentación de scripting de gvsig 2.4,
>     aunque lo estoy haciendo con la 2.5.1 build 3015.
>
>         La cosa es que me da un error al tratar de extraer las capas
>     de las vistas, el error es "object is not callable in <script> at
>     line number 16"
>
>         Creo entender que es por el método con el que he intentado
>     extraer las capas. como he almacenado en views el listado de
>     vistas, he tratado de acceder a las capas de cada vista con
>     views(i).getLayers() pero entiendo por el error que no es la forma
>     adecuada.
>
>         Pego el código por si alguien puede ver como lo podría
>     solucionar. He incluido comentarios para facilitar y he marcado en
>     negrita la línea que da error
>
>     # encoding: utf-8
>     from gvsig import *
>
>     def main(*args):
>     # Datos del proyecto
>       project = currentProject()
>       name = project.getName()
>       prjcode = project.getProjectionCode()
>
>       print "Project Name: ", name
>       print "Projection Code: ", prjcode, type(prjcode)
>
>       views = project().getViews()             #obtener las vistas del
>     proyecto
>
>       for i in range(0, len(views)):                  #iterar sobre
>     las vistas
>         print "Vista:", i, views[i].getName()          #imprime el
>     nombre de cada capa
>     *    layers = views(i).getLayers()                  #**obtener las
>     capas de la vista - aquí es donde da error*
>         for j in range(0, len(layers)):                   #iterar
>     sobre las capas
>           print "Capa: ", j, layers(j).getName(),
>           print "Tipo: ", layers(j).getTypeVectorLayer().getFullName()
>
>         Gracias de antemano
>
>         Carlos
>
>     _______________________________________________
>     gvSIG_usuarios mailing list
>     gvSIG_usuarios en listserv.gva.es <mailto:gvSIG_usuarios en listserv.gva.es>
>
>     Para ver histórico de mensajes, editar sus preferencias de usuario
>     o darse de baja en esta lista, acuda a la siguiente dirección:
>
>     https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios
>
>
> _______________________________________________
> gvSIG_usuarios mailing list
> gvSIG_usuarios en listserv.gva.es
>
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:
>
> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_usuarios/attachments/20200506/f764494e/attachment.html>


Más información sobre la lista de distribución gvSIG_usuarios