【问题标题】:Type Error: req_con() takes 1 positional argument but 12 were given类型错误:req_con() 采用 1 个位置参数,但给出了 12 个
【发布时间】:2019-06-02 18:24:08
【问题描述】:

基本上,我试图返回我在函数中获得的 ipaddress 并将其作为参数传递给另一个函数。由于它是一个 IP 地址,因此它给了我一个如上所述的错误。有没有其他方法可以让它变得更好?

代码如下:

import zmq
import time
import socket
import threading
import multiprocessing
from threading import Thread
def bd_recv():
    login to get ip

def req_con(host):
    context=zmq.Context()
    socket = context.socket(zmq.REQ)
    #address=host,port

    port=3233
    socket.connect("tcp://" "%s:%d" % ((host),port))
    print("sending request")
    socket.send_string("hey controller")
    msg=socket.recv(1024)
    print("received reply: %s" %msg)
class ThreadWithReturnValue(Thread):
    def __init__(self, group=None, target=None, name=None,
                 args=(), kwargs={}, Verbose=None):
        Thread.__init__(self, group, target, name, args, kwargs)
        self._return = None
    def run(self):
        print(type(self._target))
        if self._target is not None:
            self._return = self._target(*self._args,
                                                **self._kwargs)
    def join(self, *args):
        Thread.join(self, *args)
        return self._return
if __name__=='__main__':
    #t1=threading.Thread(target=bd_recv,name='bdrecv')
    t3 = ThreadWithReturnValue(target=bd_recv)
    #t1.start()
    t3.start()
    host=(t3.join())  --> The return ipaddress b is given as a host to other function 
    t2=threading.Thread(target=req_con,name='req',args=host,)  --> here it gives me the error as 12 is given 

    t2.start()

【问题讨论】:

    标签: multithreading zeromq python-multithreading pyzmq


    【解决方案1】:

    不幸的是,我确实犯了一个小错误,我需要改变的是:

    t2=threading.Thread(target=req_con,name='req', args=(host,)) --> this brackets in the host has to be added
    

    【讨论】:

      猜你喜欢
      • 2021-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-03
      • 2019-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多