В Python переменные создаются, когда вы назначаете их. В вашем случае student_list
назначается в глобальной области видимости, поэтому это глобальная переменная. (Глобальная область действия - это то, что не входит в вашу функцию.)
Когда Python встречает переменную внутри функции, которая не является локальной переменной (то есть она не была передана в качестве аргумента и не была назначена внутри функции), он автоматически ищет переменную в глобальной области видимости.
Если вам интересно, какова цель оператора global
, поскольку глобальные переменные уже видны внутри функций: global
позволяет вам переназначить глобальную переменную и обеспечить ее глобальное действие , Например:
def b():
global a
a = 5
a = 4
print(a) # prints 4
b()
print(a) # prints 5
В большинстве случаев вам не нужен оператор global
, и я бы порекомендовал вам его не использовать, особенно до тех пор, пока вы не станете более опытными в Python. (Тем не менее, даже опытные программисты на Python не очень часто используют global
.)