<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hola</p>
    <p>Muchas gracias Javier, por la detallada explicación.</p>
    <p>Efectivamente ese era el problema, usar paréntesis en lugar de
      corchetes, sí que me estreno bien con un script...<br>
    </p>
    <p>Así que resuelto, muchas gracias de nuevo<br>
    </p>
    <p>Saludos</p>
    <p>Carlos<br>
    </p>
    <div class="moz-cite-prefix">El 6/5/20 a las 18:27, José Olivas
      escribió:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAGpkb=MgcuQ0NNZMfLUYZVo=BzSsVhhqmqns-KO9oMEw7J0uHQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Saludos;
        <div><br>
        </div>
        <div>El error " object is not callable in &lt;script&gt; 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;</div>
        <div><br>
        </div>
        <div>&gt;&gt;x=12</div>
        <div>&gt;&gt;print x()</div>
        <div><br>
        </div>
        <div>Estas dos líneas de código devuelven el mismo error;
          TypeError: 'int' 
          object is not callable in &lt;script&gt; at line number... ya
          que se está haciendo la llamada a un entero, lo cual no es
          posible.</div>
        <div><br>
        </div>
        <div>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;</div>
        <div><br>
        </div>
        <div>&gt;&gt;lista=[1,2,3,4]</div>
        <div><br>
        </div>
        <div>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].</div>
        <div><br>
        </div>
        <div>Revisa utilizar corchetes y no paréntesis para acceder a
          los elementos cuando utilizas las listas views y layers.</div>
        <div><br>
        </div>
        <div>Espero haberte sido de ayuda.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>José Olivas Carriquí.</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Fri, May 1, 2020 at 1:37 PM
          Carlos &lt;<a href="mailto:kronosir@gmail.com"
            moz-do-not-send="true">kronosir@gmail.com</a>&gt; wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div>
            <p>    Hola</p>
            <p>    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.<br>
            </p>
            <p>    Me he basado en la Documentación de scripting de
              gvsig 2.4, aunque lo estoy haciendo con la 2.5.1 build
              3015.</p>
            <p>    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 &lt;script&gt; at line number 16"</p>
            <p>    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.<br>
            </p>
            <p>    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<br>
            </p>
            <p># encoding: utf-8<br>
              from gvsig import *<br>
              <br>
              def main(*args):<br>
              # Datos del proyecto<br>
                project = currentProject()<br>
                name = project.getName()<br>
                prjcode = project.getProjectionCode()<br>
              <br>
                print "Project Name: ", name<br>
                print "Projection Code: ", prjcode, type(prjcode)<br>
                <br>
                views = project().getViews()                            
                          #obtener las vistas del proyecto<br>
            </p>
            <p>  for i in range(0, len(views)):                       
                               #iterar sobre las vistas<br>
                  print "Vista:", i, views[i].getName()                
                       #imprime el nombre de cada capa<br>
              <b>    layers = views(i).getLayers()                    
                                 #</b><b>obtener las capas de la vista -
                aquí es donde da error</b><br>
                  for j in range(0, len(layers)):                    
                                #iterar sobre las capas<br>
                    print "Capa: ", j, layers(j).getName(),<br>
                    print "Tipo: ",
              layers(j).getTypeVectorLayer().getFullName()</p>
            <p>    Gracias de antemano</p>
            <p>    Carlos<br>
            </p>
          </div>
          _______________________________________________<br>
          gvSIG_usuarios mailing list<br>
          <a href="mailto:gvSIG_usuarios@listserv.gva.es"
            target="_blank" moz-do-not-send="true">gvSIG_usuarios@listserv.gva.es</a><br>
          <br>
          Para ver histórico de mensajes, editar sus preferencias de
          usuario o darse de baja en esta lista, acuda a la siguiente
          dirección:<br>
          <br>
          <a
            href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios</a><br>
        </blockquote>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
gvSIG_usuarios mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gvSIG_usuarios@listserv.gva.es">gvSIG_usuarios@listserv.gva.es</a>

Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:

<a class="moz-txt-link-freetext" href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios</a>
</pre>
    </blockquote>
  </body>
</html>