[Gvsig_usuarios] Duda con scripting

José Olivas jolivas en gvsig.com
Mie Mayo 6 18:27:38 CEST 2020


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> 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
>
> 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/291b4e7e/attachment.html>


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