首页 > 解决方案 > 无法创建线程,因为只有当我给它一个长于 1 的字符串时,“需要 1 个位置参数但给定 4 个”

问题描述

我正在用python制作一个聊天服务器。到目前为止,我一直在创建线程,但是当我尝试使用用户名的参数创建一个线程时,它会因上述错误而失败 - 但仅当用户名超过 1 个字符时。

如果我给它用户名“A”,它工作正常,但用户名“Alex”给出错误。我该如何解决?

他们在同一个班级。

我创建线程

Thread(target=Main.ManageClientHighLevel, args=(Username)).start()

该功能的开始是:

def ManageClientHighLevel(Username):

我该如何解决?

标签: pythonpython-3.xmultithreadingpython-multithreading

解决方案


Threadargs参数需要一个Iterable,因此您必须在 a 中提供您的单个参数tuple

Thread(target=Main.ManageClientHighLevel, args=(Username,)).start()

否则,它会将您提供的单个字符串作为 an 处理Iterable并遍历每个字符。


推荐阅读