У меня есть некоторый код, который структурирован следующим образом
from my.modules import MyClass
Class AnotherClass(object):
def __init__(a): #line 5
if a:
setup_a()
else:
setup_b()
def setup_a():
# Do some stuff to get local_x
# ..
self.a = MyClass(local_x)
def setup_b():
# Do some stuff to get local_y
# ..
self.b = MyClass(local_y)
Тем не менее, я запускаю с a = True
в строке 5, он работает нормально, но когда я запускаю с a = False
, я получаю UnboundedLocalError
. Я понимаю, что обычно вызывает это (изменение глобальной переменной), и если я изменяю setup_b () на:
def setup_b():
global MyClass
# Do some stuff to get local_y
# ..
self.b = MyClass(local_y)
Работает правильно. Я просто не понимаю, почему я получаю эту ошибку, потому что я не изменяю MyClass, создавая его.
Примечание. Приведенный выше пример является базовой версией кода, а не фактическим кодом, приводящим к ошибке.
Кто-нибудь знает, что вызывает эту ошибку?