Python 在方法之间共享值
我想我知道如何在Python中使用return,但是出现了一些问题,我不明白Python 在方法之间共享值,python,python-3.x,return,return-value,Python,Python 3.x,Return,Return Value,我想我知道如何在Python中使用return,但是出现了一些问题,我不明白 class Projet(object): def pathDirectory(self): pathDir= str(QFileDialog.getExistingDirectory(ui.pathTab1, 'Select Path','', QFileDialog.ShowDirsOnly)) return pathDir def
class Projet(object):
def pathDirectory(self):
pathDir= str(QFileDialog.getExistingDirectory(ui.pathTab1, 'Select Path','', QFileDialog.ShowDirsOnly))
return pathDir
def goFunc(self, pathDir):
# do function
# HERE pathDir is a boolean and not a str with the path directory
if __name__ == "__main__":
p = Projet()
pathDir = p.pathDirectory()
p.goFunc(pathDir) ## This is the line where it begins
所以我有一个函数,它在变量中获取路径目录并返回它。
我想在其他函数中使用path目录,但当我调用它时,它不再是一个字符串,而是一个布尔值(pathDir
)
更新:抱歉,伙计们,输入错误,它是pathDir而不是path,但仍然返回False您有一个输入错误
def pathDirectory(self):
path= str(QFileDialog.getExistingDirectory(ui.pathTab1, 'Select Path','', QFileDialog.ShowDirsOnly))
return pathDir
应该是:
def pathDirectory(self):
pathDir = str(QFileDialog.getExistingDirectory(ui.pathTab1, 'Select Path','', QFileDialog.ShowDirsOnly))
return pathDir
实际上,您正在设置路径
,然后不返回它
def pathDirectory(self):
path= str(QFileDialog.getExistingDirectory(ui.pathTab1, 'Select Path','', QFileDialog.ShowDirsOnly))
return path #edited
您应该将
return
语句更改为returnpath
,因为path
将值存储在前一行中。这应该有效。您可以创建类的成员变量,而不是不必要地传递变量。此变量可以由任何其他函数更新和重用,而无需担心传递参数
class Projet(object):
def pathDirectory(self):
print "- - in pathDirectory - -"
self.pathDir= str(QFileDialog.getExistingDirectory(ui.pathTab1, 'Select Path','', QFileDialog.ShowDirsOnly))
def goFunc(self):
print "- - In goFunc - -"
print self.pathDir
if __name__ == "__main__":
p = Projet()
p.pathDirectory()
p.goFunc()
您设置了
path=…
但随后返回pathDir
,我看不到定义了pathDir您正在pathDirectory
中返回pathDir
。我想你想回到那里。这就是为什么我说-不要喝酒和编码。您初始化了路径,但返回了pathDir。@AdityaJoshi哈哈!哎呀,我的错误(键入错误),但当我尝试在另一个应用程序中使用pathDir时,它仍然是错误的function@AnindyaDutta是的,很抱歉这是一个键入错误,但问题仍然存在,仍然返回FAlseYep抱歉,我的错,我犯了一个键入错误,但当我尝试在另一个函数中使用pathDir时,尽管我这样做了,但仍然得到一个假值,很抱歉,这是一个键入错误,但每当我尝试在另一个函数中使用pathDir时,仍然会得到一个False