

iR возникают проблемы, связанные с областью видимости переменных. Чтобы это исправить, необходимо объявить переменную F как глобальную внутри функции iR.def iR(expr, action):
global F
if eval(str(expr)):
return str(action)
F = True
iR(F, "F = False")
print(F)
Теперь код будет выводить False, как и ожидалось.
Объяснение
global F: это объявление сообщает Python, что переменная F является глобальной и должна быть доступна извне функции iR.F была объявлена локально внутри функции iR, что предотвращало ее изменение вне функции. Объявление переменной как глобальной позволяет устранить эту проблему.
Лента в твиттере