Я должен признать, что не ожидал, что следующий код может работать (пример кода из моей коллеги):
def foo():
li.append(3)
li = [1, 2]
foo()
print(li) # gives [1, 2, 3]
Мои вопросы:
- почему «global li» не требуется в «def foo ()»?
- почему «li = [1, 2]» не нужно ставить перед «def foo ()»?
пс. Python 3.6.1 используется для приведенного примера кода.