У меня возникла следующая проблема в Python. Предположим, у вас есть 3 файла:Использование объекта импортированного класса как глобальной переменной другого класса в Python
1) a.py (определяет класс A):
class A:
def a_method(self):
print "global var experiment"
2) b.py (определяет класс B, который использует метод глобального объекта класса А):
class B:
def b_method(self):
print "calling a_method() from B..."
obj_a.a_method()
3) global_ex.py:
from a import A
obj_a=A()
obj_a.a_method()
from b import B
obj_b = B()
obj_b.b_method()
Когда я бегу global_ex.py я получаю ошибку:
NameError: global name 'obj_a' is not defined
Если вместо импорта a.py и b.py я скопирую их в файл global_ex.py, он отлично работает.
В чем проблема? Как правило, что является лучшим способом использования методов одного объекта в другом объекте?
Заранее спасибо.
хорошо, 'obj_a' не определен в глобальной области видимости' b.py' - будет вам нравится интерпретатор для копирования-вставки текста импортированного модуля вместо использования скомпилированного байт-кода? – Aprillion