【发布时间】:2013-05-06 20:29:05
【问题描述】:
我想使用一个已在独立模块的类内部实例化的对象。我试图通过使对象引用全局来做到这一点。我想我想利用当前对象而不是创建一个新对象。
假设我在模块文件中有这段代码
import moduleFile
class A():
def checkAdmin(self):
global adminMenu
adminMenu = SRMadminMenu()
class SRMadminMenu()
def createAdminMenu(self):
pass
####Put code to create menu here####
def createSubMenu(self,MenuText):
pass
####Create a submenu with MenuText####
在 moduleFile.py 我有这段代码
def moduleFile_Admin_Menu():
global adminMenu
adminMenu.createSubMenu("Module Administration")
moduleFile.py 中的代码给了我以下错误。
NameError: global name 'adminMenu' is not defined
【问题讨论】:
-
应该
Import不是import吗?还有adminMenu声明在哪里? -
抱歉,我已更正错字。 adminMenu 在 A 类的 checkAdmin() 中声明。
-
您将全局标记为
global adminMenu。您需要在某处声明它。例如,adminMenu=None或其他东西。示例 - 就在import moduleFile下方 -
好的,我已经声明了 adminMenu=None,但是当我导入 moduleFile 并调用 moduleFile_Admin_Menu() - NameError: global name 'adminMenu' is not defined
-
一件事 - 你可能需要在
moduleFile.py中声明,而不是相反
标签: class object python-2.7 pyqt