Переменная в Python - "ссылка перед присваиванием"
Я хранил некоторые переменные на полке. Все работает, когда я читаю и использую их:
my_shelf = shelve.open(filename)
for key in my_shelf:
globals()[key] = my_shelf[key]
my_shelf.close()
meanDice, dice, diceSlices = getDice(Mask, ROI) # Runs OK even though Mask and ROI are read from shelf and not otherwise defined
Но если я вставлю другую функцию, которая использует те же имена переменных, функция верхнего уровня завершится сбоем:
my_shelf = shelve.open(filename)
for key in my_shelf:
globals()[key] = my_shelf[key]
my_shelf.close()
ROI = ImageRescale(ROI, ImageTransforms)
meanDice, dice, diceSlices = getDice(Mask, ROI) # local variable 'ROI' referenced before assignment
Почему это происходит, и что такое хорошее решение / практика откладывания? У меня есть тонны файлов, которые нужно прочитать и отформатировать в большие массивы - я хочу сохранить массивы.
Спасибо Богдан