首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python全局对象变量

Python全局对象变量
EN

Stack Overflow用户
提问于 2013-05-13 03:42:28
回答 1查看 44.8K关注 0票数 11

我想要在一个对象上使用,这个对象是从一个独立的模块中在一个类中瞬时创建的。我试图通过将对象引用设置为全局对象来实现这一点。我想我想使用当前的对象,而不是创建新的对象。

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

代码语言:javascript
复制
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中,我有以下代码

代码语言:javascript
复制
def moduleFile_Admin_Menu():
    global adminMenu
    adminMenu.createSubMenu("Module Administration")

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

代码语言:javascript
复制
NameError: global name 'adminMenu' is not defined
EN

回答 1

Stack Overflow用户

发布于 2013-05-14 22:51:09

您必须在类外部声明全局变量。

代码语言:javascript
复制
## Code file something.py
import moduleFile

adminMenu = None

class A():
    def checkAdmin(self):
        global adminMenu
        adminMenu = SRMadminMenu()

然后是moduleFile.py

代码语言:javascript
复制
from something import adminMenu

def moduleFile_Admin_Menu():
    global adminMenu
    adminMenu.createSubMenu("Module Administration")

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

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16511321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档