Как я могу получить доступ к глобальной переменной из другого файла .py в Python? - PullRequest
1 голос
/ 03 июня 2019

Я создал два файла, и когда я запускаю a.py, результат равен {'1': '1'}, это правильно. однако, если запустить b.py, результат не будет. Как я могу получить значение запросов от b.py?

a.py:

requests = {}

def set_value():
   global requests
   requests["1"] = "1"

if __name__ == "__main__":  
    set_value()
    print(requests)

b.py:

import a

def get_value():
   print(a.requests)


if __name__ == "__main__":
   get_value()

1 Ответ

1 голос
/ 03 июня 2019

if __name__ == "__main__": означает, что следующий за ним код будет выполняться только тогда, когда файл вызывается явно с помощью python3 filename.py из командной строки.Поскольку вы просто импортируете свой файл и не выполняете его, переменная global никогда не устанавливается.

Кроме того, все переменные python являются "глобальными" переменными, когда они объявлены вне функции, а ключевое слово globalтребуется только в том случае, если вы хотите объявить глобальную переменную внутри функции.

Чтобы исправить это, измените a.py на следующее:

requests = {}

def set_vale():
    requests["1"] = "1"

set_vale()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...