全局变量/类

Rya*_*yan 0 python

我需要在"主程序"中将类方法中创建的值传递给函数,过程或def或其调用的任何内容.

global myValue

class CalcFrame(object):
        def clearFunc(self):
                myValue = 12

def getUrl():
        print myValue
Run Code Online (Sandbox Code Playgroud)

这是我的想法,显然它不起作用:

我做那个代码,然后我创建一个对象

x = CalcFrame()
Run Code Online (Sandbox Code Playgroud)

调用应该设置全局的方法

x.clearFunc()
Run Code Online (Sandbox Code Playgroud)

然后调用应该打印它的函数

getUrl()
Run Code Online (Sandbox Code Playgroud)

得到错误

NameError:未定义全局名称"myValue"

Ant*_*ong 7

这不是global关键字的使用方式.

应该以这种方式使用它

myValue = None

class CalcFrame(object):
    def clearFunc(self):
            global myValue
            myValue = 12
Run Code Online (Sandbox Code Playgroud)

简而言之,global允许函数修改全局范围中存在的变量.有关详细信息,请参阅此处:https://docs.python.org/2/faq/programming.html#what-are-the-rules-for-local-and-global-variables-in-python