Python全局对象变量 [英] Python global object variable

查看:153
本文介绍了Python全局对象变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在一个从独立模块的类内部实例化的对象上使用。我正在尝试通过使对象引用变为全局来做到这一点。我想我想利用当前对象而不是创建一个新对象。

I want to make use on an object that has been instantinated inside of a class from a standalone module. I am trying to do this by makeing the object reference global. I think I want to make use of the current object and not create a new one.

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

Assume I have this code in a module file

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中我有此代码

In moduleFile.py I have this code

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

the在moduleFile.py中的代码给我以下错误。

the code in moduleFile.py gives me the following error.

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,

then moduleFile.py,

from something import adminMenu

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

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

Note: If you will not change adminMenu variable, you don't have to write global adminMenu

这篇关于Python全局对象变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆