使用线程将变量传递给类

时间:2015-12-04 20:35:10

标签: python kivy python-multithreading

我正在尝试将一个var从一个类传递到另一个类,这是一个线程(不确定这是什么打破它,或者只是我缺乏理解......可能是后者):

class Widgets(Widget):

    def Test():
        LogMe("test1")

    class LogMe(Thread, info):
        def __init__(self):
            Thread.__init__(self)
            self.start()

        def run(self):
            print(info)

所以Test()应该传递值“test1”,但是尽管添加和删除'selfs'并移动它(我真的需要了解Python结构!)它仍然没有识别'info'。我做错了什么?

1 个答案:

答案 0 :(得分:1)

你的错误在这里:

class Widgets(Widget):

  def Test():
      LogMe("test1")

  class LogMe(Thread, info): #you don't want to inherent info!!!!
      def __init__(self): #here you should get info as an argument 
          Thread.__init__(self)
          self.start()

      def run(self):
          print(info) #should be self.info - *if it was a member...*

固定代码:

class Widgets(Widget):

    def Test():
        LogMe("test1")

    class LogMe(Thread):
        def __init__(self, info):
            Thread.__init__(self)
            self.info = info
            self.start()

        def run(self):
            print(self.info)

享受;)