Переменная в 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

Почему это происходит, и что такое хорошее решение / практика откладывания? У меня есть тонны файлов, которые нужно прочитать и отформатировать в большие массивы - я хочу сохранить массивы.

Спасибо Богдан

0 ответов

Другие вопросы по тегам