конкретно вопрос косается определения функции
здесь максимально упрощенный пример проблемы, отражающий суть
итак.задается функция которая будет использоваться очень часто. в этом случае такая функция Slojenie
эта функция содержится в тексте определения другой функции - Eshe_odna
получается так, что на момент определения функции Eshe_odna не одна переменная в ней не определена
def Slojenie ():
c = a + b
return c
def Eshe_odna ():
#эта функция не маленькая на самом деле
a = a2
b = b2
Slojenie ()
#основной текст программы. здесь много всякого кода, где функция Eshe_odna () используется много много раз
a2 = 2
b2 = 2
d = Eshe_odna ()
print d
Traceback (most recent call last):
File "<scriptmanager>", line 15, in <module>
File "<scriptmanager>", line 9, in Eshe_odna
File "<scriptmanager>", line 2, in Slojenie
NameError: global name 'a' is not defined
единственный рабочий выход из ситуации который я вижу - не определять функцию Eshe_odna (),
вместо этого каждый раз повторять ее текст. но код получается очень большой и некрасивый. ну и вообще это не дело