В python мы можем объявить глобальную переменную, которая будет доступна другим функциям.
my_global_var = 2
# foo can only access the variable for reading
def foo():
print(my_global_var)
# bar can also write into the global variable
def bar():
global my_global_var
print(my_global_var)
Это работает, однако предположим, что я не хочу создавать глобальную переменную вне foo
и bar
, но вместо этого я хочу foo
создать локальную переменную и расширить область действия этой переменной до бара (и любой другой функции), не передавая ее в качестве параметра.
Что-то вроде
def foo():
# the scope of this variable is only foo. Can I make it global?
my_global_var = 4
# bar wants to be able to access (and maybe modify) the variable created by foo
def bar():
global my_global_var
print(my_global_var)
PD: Что касается комментариев, я думаю, что мой вопрос не понят.
Это явно не дубликат этого другого вопроса, поскольку я знаю, как использовать глобальные переменные (первый пример в вопросе использует их).
И я также не прошу предложений о передаче переменных в качестве параметров или об использовании глобальных переменных.
Мой вопрос очень специфический.Могу ли я расширить область действия локальной переменной в глобальную переменную?
Это либо да, это можно сделать таким образом, либо нет, этого нельзя сделать.И если ответ «да», я хотел бы знать, как это можно сделать.