Я не могу сделать эту работу.Использование переменных внутри функции в другом файле python
У меня есть 2 питона файлов, позволяет говорить a.py и b.py
в a.py это:
def foo():
global name
name = "foo"
import b
b.bar()
if __name__ == "__main__":
foo()
в b.py этом:
import a
def bar():
name = a.name
print(name)
У меня есть три разных вопроса относительно этого кода:
- Почему я получаю сообщение об ошибке:
AttributeError: 'module' object has no attribute 'name'
Я точно знаю, что b.py не может получить доступ к переменной, определенной в функции в b.py, но как это решить? - делает глобальный в этом случае что-то меняет? если нет, то почему?
- я пытался делать
name = a.foo.name
вместоname = a.name
, но это не делает трюк либо и дает мне:AttributeError: 'function' object has no attribute 'name'
, это даже практически в любом случае и то, что я сделал не так?
Спасибо, что нашли время и жаль, если это кажется очевидным для некоторых из вас, я все еще попадаю в это.
Где вы определяете 'имя' в' a.py'? – ozgur
@ozgur да, это определено в функции foo() в переменных a.py – Lyux
, определенных внутри функции, привязаны к локальной области действия функции, поэтому они не видны вне функции. Вам нужно определить 'имя' где-нибудь в a.py вне' foo() '. – ozgur