Должен ли я удалять глобал в python, когда я изменяю список в функции?
Вот мой код.
my_list = [{"id": 1, "data": "Python"},
{"id": 2, "data": "Code"},
{"id": 3, "data": "Learn"}]
def this():
for index in range(len(my_list)):
if my_list[index]["id"] == 2:
del my_list[index]
break
this()
print(my_list)
>>> [{'id': 1, 'data': 'Python'}, {'id': 3, 'data': 'Learn'}]
Я вижу, что my_list[1] удалился.
Но у меня есть проблема.
Я не объявляю global my_list, но почему я могу изменить список вне функции в функции?
Переменные, объявленные в глобальной области видимости, могут быть доступны из любой точки программы. Глобальные переменные можно использовать внутри любой функции. Мы также можем изменять значение глобальной переменной внутри функции.
но, если мы объявим локальную переменную с тем же именем, что и глобальная переменная, то локальная область видимости будет использовать локальную переменную.
Если вы хотите использовать глобальную переменную внутри локальной области видимости и присвоить ей новое значение, то вам необходимо использовать ключевое слово "global".
для более подробной информации посетите: https://techvidvan.com/tutorials/python-variable-scope/