如何指定args到python线程,什么都不传递?

时间:2019-05-08 17:35:41

标签: python multithreading python-2.7

请注意,这发生在python 2.7中,并且可能不在python 3中发生

在将参数传递给线程但传递零参数时如何指定args关键字?

mythread = threading.Thread(name='the_name', target=self._handle,
                                            args=[])

def _handle(self):
    pass

给出错误:

  

_handle()恰好接受1个参数(给定2个参数)

我想

  1. 不省略args=关键字

  2. 没有传递参数

能做到吗?

1 个答案:

答案 0 :(得分:1)

[]不是什么,它是一个空数组。试试:

mythread = threading.Thread(name='the_name', target=self._handle,
                                        args=())

以及类定义:

def _handle(self, *args):
    pass

我这边的完整可复制代码:

import threading


class a(object):
    def __init__(self):
        pass

    def _handle(self, *args):
        pass

    def cthread(self):
        mythread = threading.Thread(name='the_name', target=self._handle,
                                        args=())
        mythread.start()
        return mythread
b = a()
b.cthread()