Python 使用函数之外的变量

Python 使用函数之外的变量,python,python-3.x,Python,Python 3.x,我已经定义了一个函数,它将从用户输入中获取一个值。它是一个路径(基于appJar的.directoryBox)。我把目录框的代码放在一个函数中,这样当按下按钮时它就会显示出来。但是,我似乎无法在函数之外使用该值 代码的重要部分如下所示: def dirfunction(button): dirr = app.directoryBox('box') app.setEntry('Directory', dirr) app.showButton('Search') re

我已经定义了一个函数,它将从用户输入中获取一个值。它是一个路径(基于appJar的.directoryBox)。我把目录框的代码放在一个函数中,这样当按下按钮时它就会显示出来。但是,我似乎无法在函数之外使用该值

代码的重要部分如下所示:

def dirfunction(button):
    dirr = app.directoryBox('box')
    app.setEntry('Directory', dirr)
    app.showButton('Search')
    return dirr

def searchfunction(button):
    if button == 'Search':
        findBigfile.findBigFiles(dirr, mbSize)


mbSize = app.addLabelEntry('Size in MB')
app.addLabelEntry('Directory')
app.setLabelWidth('Size in MB', '10')
app.setLabelWidth('Directory', '10')

app.addButton('Choose Directory', dirfunction)
app.addButton('Search', searchfunction)
app.hideButton('Search')

app.go()
我尝试在dir函数之外使用'dirr'变量,但无法使其工作。它只在内部起作用


编辑:我也不能将app.directoryBox置于函数之外,因为这将导致在打开应用程序时直接出现弹出窗口

dirr是一个局部变量,它只能在定义的上下文中看到(在您的例子中,在函数dirfunction中,它不存在于它的外部)

为了能看到外面,你必须在外面申报

dirr = None
在此之后,从函数内部访问它,在Python2中,通过使用全局:

def method():
    global dirr # you have to declare that you'll use global variable 'dirr'
    dirr = "whatever"
现在:

print `dirr` 
将打印:

whatever

dirr是一个局部变量,它只能在定义的上下文中看到(在您的例子中,在函数dirfunction中,它不存在于它之外)

为了能看到外面,你必须在外面申报

dirr = None
在此之后,从函数内部访问它,在Python2中,通过使用全局:

def method():
    global dirr # you have to declare that you'll use global variable 'dirr'
    dirr = "whatever"
现在:

print `dirr` 
将打印:

whatever

因为
dirr
仅在函数内部局部存在,因为
dirr
仅在函数内部局部存在,所以可能值得阅读以供将来参考…可能值得阅读以供将来参考。。。