1

私は前にこのエラーを見たことがありません:

TypeError: unbound method halt_listener() must be called with test_imports instance as first argument (got Queue instance instead)

このコードを実行すると、次のようになります。

class test_imports:#Test classes remove 
      alive = {'import_1': True, 'import_2': True};

      def halt_listener(self, control_Queue, thread_Name, kill_command):
          while True:
              print ("Checking queue for kill")
              isAlive = control_queue.get()
              print ("isAlive", isAlive)
              if isAlive == kill_command:
                 print ("kill listener triggered")
                 self.alive[thread_Name] = False;
                 return

      def import_1(self, control_Queue, thread_Number):
          print ("Import_1 number %d started") % thread_Number
          t = Thread(target=test_imports.halt_listener, args=(control_Queue, 'import_1', 't1kill'))
          count = 0 
          t.run()
          global alive 
          run = test_imports.alive['import_1'];
          while run:
                print ("Thread type 1 number %d run count %d") % (thread_Number, count)
                count = count + 1
                print ("Test Import_1 ", run)
                run = self.alive['import_1'];
          print ("Killing thread type 1 number %d") % thread_Number 

def halt_listener(self, control_Queue, thread_Name, kill_command):特にこの行だと思いますが、これselfをどのように処理すべきかについて誰かが何らかの指針を持っているかどうかわかりませんか? ありがとう!

4

1 に答える 1

5

最初にクラスのインスタンスを作成する必要があります。

def import_1(self, control_Queue, thread_Number):
    print ("Import_1 number %d started") % thread_Number
    myinstance = test_imports()
    t = Thread(target=myinstance.halt_listener, args=(control_Queue, 'import_1', 't1kill'))
于 2013-08-18T01:23:24.737 に答える