我在Python中遇到了以下問題。假設有3個文件:在Python中使用導入類的對象作爲另一個類的全局變量
1)a.py(定義類A):
class A:
def a_method(self):
print "global var experiment"
2)b.py(定義了使用類A的全局對象的方法)類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 2013-03-28 00:14:17