python - как установить глобальные переменные в колбе? [дубликат]

этот вопрос уже есть ответ здесь:

Я работаю над Flask project и я хочу, чтобы мой индекс загружал больше содержимого при прокрутке. Я хочу установить глобальную переменную, чтобы сохранить сколько раз на странице нагруженный. Мой проект структурирован следующим образом:

├──run.py
└──app
   ├──templates
   ├──_init_.py
   ├──views.py
   └──models.py

сначала я объявляю глобальную переменную в _init_.py:

global index_add_counter

и Pycharm предупредил Global variable 'index_add_counter' is undefined at the module level

на views.py:

from app import app,db,index_add_counter

и ImportError: cannot import name index_add_counter

Я ссылка глобальных переменных-и-питон-фляга Но у меня нет функции main (). Как правильно установить глобальную переменную в склянке?

1 ответов


С:

global index_add_counter

вы не определяете, просто объявляете так, как будто говорите существует глобальный index_add_counter переменной в другом месте, , а не создать глобальный под названием index_add_counter. Поскольку вы называете не существует, Python говорит вам, что он не может импортировать это имя. Поэтому вам нужно просто удалить global ключевое слово и инициализировать переменную:

index_add_counter = 0

теперь вы можете импортировать его с:

from app import index_add_counter

в строительство:

global index_add_counter

используется внутри определений модулей, чтобы заставить интерпретатор искать это имя в области модулей, а не в определении:

index_add_counter = 0
def test():
  global index_add_counter # means: in this scope, use the global name
  print(index_add_counter)