在方法之间共享值

时间:2015-06-04 08:16:43

标签: 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 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

所以我有一个函数可以获取变量中的路径目录并返回它。 我想在其他函数中使用路径目录但是当我调用它时,它不再是一个字符串,而是一个布尔(当我打印{{时,我得到一个 False 1}})

更新:抱歉,输入错误,它是pathDir而不是路径,但仍然返回 False

3 个答案:

答案 0 :(得分:1)

你有一个错字。

   def pathDirectory(self):

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

       return pathDir

应该是:

path

因为您正在设置import pika host_ip = #host ip channel = pika.BlockingConnection(pika.ConnectionParameters(host_ip, 5672, "/", credentials=pika.PlainCredentials("username","pwd"))).channel() print "deleting queue..", channel.queue_delete(queue=queue_name) 然后不返回它。

答案 1 :(得分:1)

这应该有效。您可以创建该类的成员变量,而不是不必要地传递变量。此变量可以由任何其他函数更新和重用,而无需担心传递参数。

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()

答案 2 :(得分:0)

def pathDirectory(self):

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

       return path #edited

您应该将return语句更改为return path,因为path正在将值存储在上一行中。