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
中声明,而不是相反