Рассмотрим этот пример:
def func1():
val = 1
res = [1]
def fun2():
print(res)
print(val)
val = 2
fun2()
print(val)
func1()
Возникает следующее исключение:
UnboundLocalError: local variable 'val' referenced before assignment
Список res
доступен для fun2
, но val
- нет. Я знаю, что list
является изменяемым, а int
- нет, но есть ли способ сделать val
доступным также для fun2
? В классе я мог бы легко добиться этого с помощью self.val
, но есть ли способ сделать это внутри функции?