Я программист-самоучка без формального обучения, поэтому, пожалуйста, простите меня заранее, если это глупый вопрос.
При программировании на Python я обнаружил нечто странное:
from someModule import someClass
def someFunction():
someInstance = someClass()
print "foo"
del someClass
someFunction()
Это немедленно умирает с несвязанной ошибкой локальной переменной:
UnboundLocalError: local variable 'someClass' referenced before assignment
Комментирование оператора delete решает проблему:
...
#del someClass
...
и возвращается:
foo
Итак, 2 вопроса:
1) оператор del находится в конце функции. Почему он вызывается перед битами в начале?
2) Почему выдается ошибка «несвязанная локальная переменная»? Разве это не должна быть ошибка "unbound global variable"?