在方法之间共享值

2024-05-13 21:38:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想我知道如何在Python中使用return,但是出现了一些问题,我不明白。你知道吗

    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时,得到一个False

更新:抱歉,伙计们,输入错误,它是pathDir而不是path,但仍然返回False


Tags: thepath函数self目录falsereturnis
3条回答

你打错了。你知道吗

   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

实际上,您正在设置path,然后不返回它。你知道吗

def pathDirectory(self):

       path= str(QFileDialog.getExistingDirectory(ui.pathTab1, 'Select Path','', QFileDialog.ShowDirsOnly))

       return path #edited

您应该将return语句更改为return path,因为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()

相关问题 更多 >