Я работаю над ArcMap и у меня есть этот питон код:UnboundLocalError с Python на ArcGis
import arcpy, sys
feature = arcpy.GetParameterAsText(0)
def nearRoutine():
#calculate the distances using the current dataset
arcpy.Near_analysis(feature, feature)
#iterate through any features which are within the distance
cur = arcpy.UpdateCursor(feature, '"NEAR_DIST" < 500')
row1 = cur.next()
while row1:
#this point is within the distance of its neighbor, so delete it
cur.deleteRow(row1)
#now re-run this routine on the new dataset
del row1, cur
nearRoutine
#call the recursive routine. It will get progressively faster to run as it will loop through fewer points each time
nearRoutine()
Мое сообщение об ошибке: UnboundLocalError: локальная переменная 'Row1', на который ссылается перед тем назначением
Я не понять, потому что моя переменная четко определена ...
У кого-то есть проблема?
Добро пожаловать в переполнение стека! Спасибо, что предоставили образец кода вместе с вашим вопросом. Мне любопытно, что вы надеялись бы в этом коде: 'while row1: ...; del row1 ... '. –
Убедитесь, что мои переменные стираются до перезапуска моего порядка возле Routine – user19717
Я вижу. Вызов 'nearRoutine' рекурсивно не так много * перезапустите * эту функцию, как создать новый экземпляр. Локальные переменные уникальны для каждого экземпляра функции; «row1» во внутреннем функциональном кадре полностью не связан с «row1» во внешнем фрейме функции, поэтому 'del' не требуется. И, как вы обнаружили, плохо по другим причинам. –