将变量长度列表作为参数传递给线程函数

时间:2017-11-11 08:05:32

标签: python list parameter-passing python-multithreading

我试图将列表作为参数传递给线程函数。此列表的长度可能有所不同,但我无法弄清楚如何操作。以下是我正在使用的代码。现在,我只想将列表放入线程函数并在屏幕上打印。

#!/usr/bin/python
import threading
import Queue as queue


def generateRange(starting_chars=(*args)):
    print str(starting_chars)


for i in range(32,126):
    q = queue.Queue()
    theArgs = [i,32,32]
    threads = [ threading.Thread(target=generateRange,args=theArgs) ]
    # generateRange([i,32,32]) 
    for th in threads:
        th.daemon = True
        th.start()

我收到此错误:

    File "./test.py", line 6
    def generateRange(starting_chars=(*args)):
                                      ^
SyntaxError: invalid syntax

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您可以将语法更改为此,否则将不会定义args

def generateRange(*starting_chars):
    print str(starting_chars)

答案 1 :(得分:1)

我不知道你为什么特意希望这个论点被命名为“starting_chars'但是:

def generateRange(*starting_chars):
    print str(starting_chars)

def generateRange(*args):
    print str(args)

应该可以正常工作