线程中的类型错误。函数接受 x 位置参数,但给出 y [重复]

2024-03-10

我现在正在使用Python。我有一个start-function,从消息中获取字符串。我想为每条消息启动线程。

目前的线程应该像这样打印出我的消息:

def startSuggestworker(message):
    print(message)

def start():
    while True:
        response = queue.receive_messages()
        try:
            message = response.pop()
            start_keyword = message.body
            t = threading.Thread(target=startSuggestworker, args = (start_keyword))
            t.start()
            message.delete()
        except IndexError:
            print("Messages empty")
            sleep(150)

start()

此刻我得到了TypeError并且不明白为什么。异常消息是这样的:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
TypeError: startSuggestworker() takes 1 positional argument but y were given

*y = 我的字符串的长度

我究竟做错了什么?


The args夸格的threading.Thread需要一个可迭代对象,并且该可迭代对象中的每个元素都被传递给目标函数。

由于您提供了一个字符串args:
t = threading.Thread(target=startSuggestworker, args=(start_keyword))

每个字符都作为单独的参数传递给startSuggestworker.

相反,您应该提供args一个元组:

t = threading.Thread(target=startSuggestworker, args=(start_keyword,))
#                                                                  ^ note the comma
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线程中的类型错误。函数接受 x 位置参数,但给出 y [重复] 的相关文章

随机推荐

  • 多个表行作为backbone.js 视图?

    所以我有一个数据网格 网格中的每个项目都有一个关联的模型和视图 我需要将每个项目渲染为two表行以实现所需的 UI 不 这不是我的设计 第一次尝试 在视图中render 方法 只需渲染两行并将它们添加到this el 然后我将每个视图附加到
  • 将向量转换为向量(优雅的方式)

    我想知道是否有一种优雅的方式或内置函数来转换vector
  • 在绑定到 Winforms 数据源的 gridview 的 bool 列中显示是/否?

    我有一个绑定到数据源 Windows 窗体 VB NET 的 gridview 其中一列是布尔类型的属性 我想在该列中显示 是 否 而不是 0 1 或 真 假 这可能吗 您可以编辑绑定列的显示吗 我遇到了同样的问题 不幸的是我没有找到优雅的
  • 使用 Tensorflow 对象检测 api 打乱训练数据集

    我正在使用 Faster RCNN 模型和 Tensorflow 对象检测 API 来开发徽标检测算法 我的数据集按字母顺序排列 因此有一百个阿迪达斯徽标 然后是一百个苹果徽标等 我希望在训练时对其进行洗牌 我在配置文件中添加了一些值 tr
  • UIResponder 问题

    今晚我一直在与 UIResponder 作斗争 这是我的困境 如果我输入 BOOL canBecomeFirstResponder return YES 到我的 mainViewController 然后我可以获得摇动事件 void mot
  • 无法打开流:是一个目录

    我在尝试使用 php 将上传的文件从临时文件夹移动到所需的文件时收到以下警告 警告 move uploaded file test function move uploaded file 无法打开流 是第 69 行 home filenam
  • MySQL 8 中索引 JSON 列

    所以我正在尝试 json 列 Mysql 8 0 17 应该可以使用多值 JSON 索引 如下所示 CREATE INDEX data nbr idx ON a1 CAST data gt nbr AS UNSIGNED ARRAY 我有像
  • 如何使用 JavaScript 函数验证字段?

    我创建了一个表单 从文档中的示例 https getbootstrap com docs 4 0 components forms在 验证 自定义样式 部分 我在 cumpolsory 输入中添加了 必需 属性 并且验证进展顺利 现在我需要
  • 如何将自定义 Lambda 层包含到管道堆栈中? (AWS-CDK)

    我有两堆 应用栈 管道栈 将自定义 lambda 层包含到管道堆栈中以便将代码位置信息中继回我的应用程序堆栈的官方方法是什么 我已经按照文档使常规 lambdas 工作 在这里找到 https docs aws amazon com cdk
  • ASP.Net MVC Angular 2 最终版

    有人尝试过 Angular 2 RC Final 和 ASP Net MVC 吗 我在使用 ASP Net MVC 配置 Angular 2 RC 6 时遇到问题 直到 beta 17 一切正常 具有以下配置的 package json 似
  • “npm start”导致错误 - ENOENT:没有这样的文件或目录... package.json [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我尝试使用 NPX 创建一个 React 应用程序 一切都很顺利 但是当我跑步时npm start 我收到以下错误 np
  • 如何为 3 组添加一些列值?

    我有 3 列 SAMPN PERNO 循环 以及对应于3种模式的实用程序 角豆和步行 我想添加具有相同 SAMPN PERNO 循环的行的实用程序 适用于 car car bus bus walk walk walk bus 和 Bus w
  • Sqlite 数据库未从 Android 资产文件夹复制

    我正在尝试将名为 adinpect 的数据库从资产文件夹复制到应用程序数据库文件夹 但它不起作用 代码 在主活动 onCreate 中 仅用于测试 try String destPath data data getPackageName d
  • Rails 引擎线程安全 - ActiveResource

    我的 Rails 3 1 应用程序使用一个引擎 我想知道对该引擎的访问是否是线程安全的 我的引擎中有 lib mymodule rb 它看起来像这样 module MyModule def self my method begin data
  • XSLT 递归父/子组合

    非常有趣的Python赏金问题 https stackoverflow com questions 37170543 recursively search for parent child combinations and build tr
  • 识别 Eigen 中的临时对象创建

    正如 Eigen C 库中的文档在许多地方指出的那样 为了在计算时间方面获得最大性能 我们需要尽可能避免临时对象 在我的应用程序中 我处理动态大小矩阵 我想知道在计算中临时矩阵的创建 有没有通用的方法来识别临时矩阵的创建 例如 Eigen
  • opencv imshow with waitKey 在 Mac OS X 10.10.2 上太慢(使用 c++)

    我在 Mac OS X 10 10 2 上使用 opencv c 来处理视频帧并显示它们 使用 waitKey 来显示视频的 imshow 的性能极其缓慢 我有以下代码 它可以正确显示高清 1920x1080 灰度帧 只是它的运行速度慢了大
  • 运行前强制批处理文件加载到 RAM

    我的便携式驱动器的管理分区中有一个批处理文件 驱动器根目录上有一个符号链接到该文件的快捷方式 该文件的目的是卸载驱动器并将其重新安装为指定的盘符 主要是为了方便 打开文件时 它是相对于当前字母而不是卷 ID 打开的 因此自然地 当发生卸载时
  • 如何记住使用 core.async 和非阻塞通道读取的函数?

    我想用memoize对于使用的函数core async and
  • 线程中的类型错误。函数接受 x 位置参数,但给出 y [重复]

    这个问题在这里已经有答案了 我现在正在使用Python 我有一个start function 从消息中获取字符串 我想为每条消息启动线程 目前的线程应该像这样打印出我的消息 def startSuggestworker message pr