我已经定义了一个函数,它将从用户输入中获取一个值。这是一个路径(基于 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()
Run Code Online (Sandbox Code Playgroud)
我尝试在 dirfunction 之外使用 'dirr' 变量,但我无法让它工作。它只在内部有效。
编辑:我也不能在函数之外创建 app.directoryBox,因为这会导致在打开应用程序时直接出现弹出窗口。
dirr 是一个局部变量,它只能在定义的上下文中看到(在你的情况下在函数 dirfunction 内部,它不存在于它之外)。
为了能够看到外面,你必须在外面声明。
dirr = None
Run Code Online (Sandbox Code Playgroud)
之后,从函数内部访问它,在python 2中它是通过使用全局来完成的:
def method():
global dirr # you have to declare that you'll use global variable 'dirr'
dirr = "whatever"
Run Code Online (Sandbox Code Playgroud)
现在:
print `dirr`
Run Code Online (Sandbox Code Playgroud)
将打印:
whatever
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10208 次 |
| 最近记录: |