Python全局对象变量

Pre*_*cks 8 class pyqt object python-2.7

我想在独立模块中使用已在类中进行了即时化的对象.我试图通过使对象引用全局来做到这一点.我想我想利用当前对象而不是创建一个新对象.

假设我在模块文件中有这个代码

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####
Run Code Online (Sandbox Code Playgroud)

在moduleFile.py中我有这个代码

def moduleFile_Admin_Menu():
    global adminMenu
    adminMenu.createSubMenu("Module Administration")
Run Code Online (Sandbox Code Playgroud)

moduleFile.py中的代码给出了以下错误.

NameError: global name 'adminMenu' is not defined
Run Code Online (Sandbox Code Playgroud)

cen*_*bck 9

您必须在类之外声明全局变量.

## Code file something.py
import moduleFile

adminMenu = None

class A():
    def checkAdmin(self):
        global adminMenu
        adminMenu = SRMadminMenu()
Run Code Online (Sandbox Code Playgroud)

然后moduleFile.py,

from something import adminMenu

def moduleFile_Admin_Menu():
    global adminMenu
    adminMenu.createSubMenu("Module Administration")
Run Code Online (Sandbox Code Playgroud)

注意:如果您不更改adminMenu变量,则无需编写 global adminMenu