Python объявление переменной и ошибка функции - PullRequest
0 голосов
/ 07 августа 2020

У меня вопрос по поводу Python.

Я хочу использовать переменную внутри функции, но получаю такую ​​ошибку:

NameError: name 'BP' is not defined

Вот мой код:

# File 1 test.py:
from importlib import import_module

def test():
    print(BP)
    print(BP["test2"].d)

if __name__ == "__main__":
    BP: (dict) = {}
    BP.update({"test2": import_module(".test2", "test_folder")})



# File 2 file2.py in test_folder:
from test import test

d: (dict) = {"Hello": "World"}

print("hi")
test()

Итак, мой вопрос: почему это не работает?

1 Ответ

1 голос
/ 07 августа 2020

Что касается:

if __name__ == "__main__":

Это верно, только если вы действительно запускаете файл test.py, не , когда вы просто импортируете его, как вы это делаете из file2.py. В последнем случае не выполняется никакого кода для привязки переменной BP к объекту, поэтому при вызове test возникнет жалоба на это.

...