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 <krono...@gmail.com
<mailto:krono...@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@listserv.gva.es <mailto:gvSIG_usuarios@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@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@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