6 votos

¿Comprensión de fondo único Hash (#) vs doble (#) en QGIS Python Scripting?

Primero de todo quiero entender el doble de hash (##) se utiliza para definir las Entradas / Salidas en una secuencia de comandos de la interfaz gráfica de usuario. Si hay más a él que por favor, hágamelo saber.

En todos los demás de código en Python he hecho el doble de hashes son otra variación en el único hash (por los comentarios).

¿Alguien puede proporcionar información sobre los antecedentes de cómo QGIS se las arregla para no ver un ## línea como un unexecuted comentario?

Supongo que, simplemente, construido en el QGIS compilador de Python para reconocer ## como la definición de la GUI de entradas y salidas.

De nuevo yo lo entiendo ahora, y la línea de fondo es que funciona, pero me pareció una extraña manera de establecer la interfaz gráfica de usuario. Sólo por curiosidad.

8voto

Mat Puntos 196

La cosa maravillosa sobre el open source es que es posible responder a una pregunta interesante como este, cuando surge ;)

Una gran parte de QGIS es en C++, pero sorprendentemente grandes cantidades también son escritos en Python, incluyendo el Procesamiento. El procesamiento es técnicamente un plugin de Python, aunque ha sido "derribado en el core' - se convirtió en una característica estándar.

Usted puede ver la línea en cuestión en /python/plugins/processing/script/ScriptAlgorithm.py

def defineCharacteristicsFromFile(self):
    ... snip ...
    while line != '':
        if line.startswith('##'):
            try:
    ... snip ...

Este código se escanea a través del archivo de python, en busca de parámetros y análisis de esas líneas. Como están los comentarios, python ignora - es esta secuencia de comandos que les da significado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X