Class Python全局对象变量
我想在一个对象上使用,该对象已从独立模块实例化到类内部。我试图通过将对象引用设为全局来实现这一点。我想我想利用当前对象,而不是创建一个新对象 假设我在一个模块文件中有这个代码Class Python全局对象变量,class,object,python-2.7,pyqt,Class,Object,Python 2.7,Pyqt,我想在一个对象上使用,该对象已从独立模块实例化到类内部。我试图通过将对象引用设为全局来实现这一点。我想我想利用当前对象,而不是创建一个新对象 假设我在一个模块文件中有这个代码 import moduleFile class A(): def checkAdmin(self): global adminMenu adminMenu = SRMadminMenu() class SRMadminMenu() def createAdminMenu(s
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
必须在类外部声明全局变量
## Code file something.py
import moduleFile
adminMenu = None
class A():
def checkAdmin(self):
global adminMenu
adminMenu = SRMadminMenu()
然后moduleFile.py
from something import adminMenu
def moduleFile_Admin_Menu():
global adminMenu
adminMenu.createSubMenu("Module Administration")
注意:如果不更改adminMenu变量,则不必编写
global adminMenu
应该Import
而不是Import
?,还有adminMenu
在哪里声明?对不起,我已经更正了输入错误。adminMenu in在A类的checkAdmin()中声明。您正在将全局标记为全局adminMenu
。你需要在某处申报。例如,adminMenu=None
或其他什么。示例-就在下面import moduleFile
OK,我声明了adminMenu=None,但当我导入moduleFile并调用moduleFile\u Admin\u Menu()时,仍然会遇到相同的错误-NameError:全局名称“adminMenu”没有定义一件事-您可能必须在moduleFile.py
中声明,而不是相反