1 votos

Evitar Python NameError al reescribir el script con funciones definidas por el usuario para ArcGIS Pro

Estoy reescribiendo un script para la compatibilidad con Python 3.6 y ArcGIS Pro y parece que las funciones definidas por el usuario serán necesarias para limpiarlo. Soy bastante nuevo. He separado el bloque de código en dos funciones y me gustaría llamar a la primera función al principio de la segunda. También me gustaría llamar a la primera función cerca del final, pero estoy recibiendo un NameError. Este es el bloque de código en el que estoy trabajando.

def select_address():
    for lyr in m.listLayers():  
        if lyr.name == "LOCATION.addresspoint":
            CoaAddresses = lyr
            selection = arcpy.SelectLayerByAttribute_management(CoaAddresses,"NEW_SELECTION", expression)
            return(selection)

def found_address():
    select_address()
    print(selection)
    for row in arcpy.SearchCursor(selection): #retrieve address of selected feature
        selectedAddress = row.FULL_STREET_NAME  #this variable used later for legend
        return(selectedAddress)

select_address()

results = arcpy.GetCount_management(selection) #return number of features selected

el error que obtengo:

results = arcpy.GetCount_management(selection) #retorna el número de características seleccionadas

NameError: el nombre 'selection' no está definido

No debería selection se defina en el def select_address(): parte del guión?

2voto

Kevin Boyd Puntos 4552

selection es una variable local dentro de select_address() para que no se pueda utilizar fuera del ámbito de esa función.

selection = select_address() debería arreglar el error de nombre

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