将参数传递给 threading.Thread

2023-11-22

我在 Windows 上使用 Python 3。我在用threading.Thread动态运行一个函数,我可以带或不带参数调用它。我正在设置一个事物列表,其中第一项是定义路径的字符串。其他参数将在列表中稍后列出。所以,args 可能等于['C:\SomePath']或者它可能等于['C:\SomePath', 'First Argument', 'Second Argument']。我的电话看起来像这样:

my_script = threading.Thread(target=scr_runner, args=q_data.data)
my_script.start()

问题是在调用过程中的某个地方threading.Thread and/or start函数中,参数正在失去其列表特征(isinstance(q_data.data, str)=False),但在里面scr_runner函数,它取script_to_run_data争论,isinstance(script_to_run_data, str)=True.

我需要将这个论点始终保留在一个列表中。我怎样才能做到这一点?

我在文档中读到threading.Thread函数需要一个元组。转换类似的东西是否存在问题['C:\SomePath']到一个元组,它在哪里变成一个字符串?

在此先感谢您的时间!

这是一个 MWE:

# coding=utf-8
""" This code tests conversion to list in dynamic calling. """

import threading


def scr_runner(script_to_run_data: tuple) -> None:
    """ This is the function to call dynamically. """
    is_list = not isinstance(script_to_run_data, str)
    print("scr_runner arguments are a list: T/F. " + str(is_list))


my_list=['C:\SomePath']
is_list = not isinstance(my_list, str)
print("About to run script with list argument: T/F. " + str(is_list))
my_script = threading.Thread(target=scr_runner, args=my_list)
my_script.start()

现在,奇怪的是,当我让 my_list 包含更多元素时,出现错误:

# coding=utf-8
""" This code tests conversion to list in dynamic calling. """

import threading


def scr_runner(script_to_run_data: tuple) -> None:
    """ This is the function to call dynamically. """
    is_list = not isinstance(script_to_run_data, str)
    print("scr_runner arguments are a list: T/F. " + str(is_list))


my_list=['C:\SomePath', 'First Argument', 'Second Argument']
is_list = not isinstance(my_list, str)
print("About to run script with list argument: T/F. " + str(is_list))
my_script = threading.Thread(target=scr_runner, args=my_list)
my_script.start()

产生错误:

About to run script with list argument: T/F. True
Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\threading.py", line 916, in  
       _bootstrap_inner
    self.run()
  File "C:\ProgramData\Anaconda3\lib\threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
TypeError: scr_runner() takes 1 positional argument but 3 were given

args是要传递的参数序列;如果你想传递一个list作为唯一的位置参数,您需要通过args=(my_list,)使其成为一个包含list(或者基本上等效地,args=[my_list]).

它需要是一系列参数,即使只传递一个参数,也是为了避免您创建的歧义。如果scr_runner采用三个参数,其中两个具有默认值,并且my_list长度为 3,您的意思是将这三个元素作为三个参数传递,还是应该my_list是第一个参数,其他两个保持默认?

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

将参数传递给 threading.Thread 的相关文章

  • 从另一列的子字符串创建列

    我有一个 Pandas 数据框对象 我想从现有列的子字符串创建新列 我的数据如下所示 Date variable want1 want2 want3 0 02 01 08 Australia Sydney A Australia Sydne
  • Python 2.7:支持一个端口上多个连接的流式 HTTP 服务器

    我正在寻找一个标准的Python 2 7包 提供一个同时执行的HTTP服务器流媒体同一端口号上的连接 嘿 各位版主 请停止将我的问题标记为想要以非流媒体方式提供服务的问题的重复项 例如 python 中的多线程 Web 服务器 https
  • 接收字母并返回字母表中(从 0 开始)数字位置的 Python 函数

    我正在尝试创建一个 Python 函数 它接收一个字母 只有一个字母字符的字符串 并返回该字母在字母表中从 0 开始的数字位置 它不应该区分大小写 而且我不能使用导入 所以输入 a 应该返回 0 输入 A 也应该返回 0 输入 O 应该返回
  • Django 2.0 haystack 更新索引,重建索引抛出错误

    我使用 django 2 0 和 haystack whoosh 作为搜索 我按照文档中的说明进行配置 发生的问题是当我跑步时 manage py rebuild index它显示此错误 Traceback most recent call
  • 如何停止提交给 ExecutorService 的 Callable?

    我正在尝试实现一个示例应用程序来测试Callable and ExecutorService接口 在我的应用程序中我已经声明 ExecutorService exSvc Executors newSingleThreadExecutor T
  • 调试 Java InterruptedException,即查找原因

    在调试Android应用程序时 有时中断异常发生并使应用程序崩溃 我已经能够在默认异常处理程序上设置断点 但调用堆栈不提供信息 at java util concurrent locks AbstractQueuedSynchronizer
  • 如何使用 matplotlib 在误差条图的尖端显示水平线?

    我可以使用下面的代码生成误差条图 代码生成的图表显示了代表错误的垂直线y 我希望在这些错误的尖端有水平线 误差线 但我不知道该怎么做 import numpy as np import matplotlib pyplot as plt x
  • 这个等待通知线程语义的真正目的是什么?

    我刚刚遇到一些代码 它使用等待通知构造通过其其他成员方法与类中定义的线程进行通信 有趣的是 获取锁后 同步范围内的所有线程都会在同一锁上进行定时等待 请参见下面的代码片段 随后 在非同步作用域中 线程执行其关键函数 即 做一些有用的事情1
  • Erlang 如何睡觉(晚上?)

    我想在 Erlang 服务器上每隔几个小时运行一次小型清理过程 我知道计时器模块 我在教程中看到一个示例 使用链式计时器 睡眠命令来等待几天后发生的事件 我觉得这很奇怪 我知道 Erlang 进程与其他语言中的进程相比是独一无二的 但是进程
  • 哪个版本的 Miniconda 具有适用于 Windows 64 位的 Python 3.6?

    我正在开发一个需要这些深度学习库的项目 keras 和 tensorflow 不幸的是 这些不适用于 Python 3 7 有人可以告诉我一个带有 Python 3 6 的 Miniconda 版本 适用于 Windows 64 位 吗 我
  • 异步回调在哪个线程上运行?

    我正在做几个HttpWebRequest BeginGetResponse调用 并在回调方法中BeginGetResponse 我正在调用一个事件处理程序 在EventHandler中 有测试下载是否成功的逻辑 如果没有 它会尝试重新下载
  • 如何使用 PyCharm 运行 Pylint

    我想将 Pylint 配置为我正在处理的 Python 项目的整个项目目录中的外部工具 我尝试将存储库用作模块 init py没有的话 这两种方式都不起作用 我在设置 Pylint 与 PyCharm 一起运行时遇到困难 我知道我应该将它作
  • 这是 C# 的有效、惰性、线程安全的 Singleton 实现吗?

    我实现了这样的单例模式 public sealed class MyClass public static MyClass Instance get return SingletonHolder instance static class
  • 使用 .NET 中的类型化数据集将 SQL 参数传递给 IN() 子句

    首先道歉 因为该网站上有类似的问题 但没有一个直接回答这个问题 我在 VS 2010 中使用类型化数据集 我在数据集中创建一个 TableAdapter 查询如下 SELECT from Table WHERE ID IN IDs 现在如果
  • 在不支持线程的程序加载的共享库中使用 C++11 多线程

    我目前正在尝试在共享库中使用 C 11 多线程 该库加载到 Linux 上的主程序 用 C 编写 中 这是一个大型模拟程序的一部分 我无法更改有关库加载的任何内容或更改一般的主程序 主程序是用 gcc 4 1 2 编译的 我没有它的源代码
  • 异步迭代器

    我有以下代码 while slowIterator hasNext performLengthTask slowIterator next 由于迭代器和任务都很慢 因此将它们放入单独的线程中是有意义的 这是对迭代器包装器的快速而肮脏的尝试
  • pthread_cond_timedwait() 和 pthread_cond_broadcast() 解释

    因此 我在堆栈溢出和其他资源上进行了大量搜索 但我无法理解有关上述函数的一些内容 具体来说 1 当pthread cond timedwait 因为定时器值用完而返回时 它如何自动重新获取互斥锁 互斥锁可能被锁定在其他地方 例如 在生产者
  • Meteor.setTimeout 和 Meteor.methods 之间的并发

    在我的 Meteor 应用程序中实现回合制多人游戏服务器 客户端通过发布 订阅接收游戏状态 并且可以调用 Meteor 方法sendTurn将回合数据发送到服务器 他们无法直接更新游戏状态集合 var endRound function g
  • 为什么 Pickle 协议 4 中的 Pickle 文件是协议 3 中的两倍,而速度却没有任何提升?

    我正在测试 Python 3 4 我注意到 pickle 模块有一个新协议 因此 我对 2 个协议进行了基准测试 def test1 pickle3 open pickle3 wb for i in range 1000000 pickle
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只

随机推荐

  • Electron 中的 WebRTC 屏幕共享

    我们有一个网络应用程序 我通过在 browserWindow 中加载 URL 来构建电子应用程序 但是当我尝试共享屏幕时 它会弹出一个窗口 提示请安装 janus webRTC 屏幕共享插件并重新启动浏览器 请帮忙 您需要在电子中实现自己的
  • 为什么使用 JOIN 子句而不是 WHERE 条件?

    我针对 Oracle 数据库进行开发 当我需要手动编写时 不使用像 hibernate 这样的 ORM 我使用 WHERE 条件而不是 JOIN 例如 这只是为了说明风格 Select from customers c invoices i
  • web.xml 验证错误

    我的 web xml 中又出现一个错误 无法将名称 javaee web appType 解析为 类型定义 组件 和 web xml 文件
  • Java - 转义字符串以防止SQL注入

    我试图在java中放置一些反sql注入 但发现使用 replaceAll 字符串函数非常困难 最终我需要一个函数来转换任何现有的 to any to any to 以及任何 n to n这样当 MySQL 评估该字符串时 SQL 注入就会被
  • 如何简化 (IO (Either a b)) 中的错误处理

    我使用以下场景作为示例来学习如何以简单的方式处理错误 该场景基本上是从环境变量中读取文件路径 然后使用文件路径读取并打印文件 以下代码有效 但我不喜欢printFile因为它已经嵌套了case of 有点难读 我想知道是否有一种干净的方法来
  • 如何阻止 Richfaces 添加边框到面板和日历?

    我希望使用自定义的 richfaces 皮肤来处理我的大部分演示工作 不幸的是 richfaces 在日历组件中的每个单元格和每个面板周围呈现边框 我想将它们关闭 以便那天的数字位于一个没有边界的开放网格中 没有明显的方法可以使用日历控件的
  • Github GraphQL - 获取存储库的提交列表

    我正在使用 GraphQL 使用 Github 的 GraphQL v4 API 从存储库列表中获取一些数据 我想要一份清单最新提交来自存储库 无论提交的分支 标签 引用是什么 现在 我正在执行以下操作来从某个存储库获取提交列表 on Re
  • 如何使浮动操作按钮背景渐变?

    FAB的代码
  • 以编程方式获取 GPU 利用率

    是否有获取 GPU 当前负载的标准方法 我正在寻找类似于显示 CPU 的任务管理器的东西 GPU Z 等实用程序显示了这个值 但我不确定它是如何得到这个值的 我目前对 AMD 显卡特别感兴趣 任何指示都会有帮助 如果没有干净的 API 方法
  • Flask-sqlalchemy 查询日期时间间隔

    我用flask sqlalchemy定义了一个表 显示如下 class Notes db Model id db Column db Integer primary key True notes db Column db Text null
  • 具有多态类型的 STUArray

    我想使用以下方法实现一个算法ST单子和STUArrays 我希望它能够与两者一起使用Float and Double data 我将演示一个更简单的示例问题 计算记忆值scanl 0 我知道这可以解决 无需STUArray 仅用作示例 LA
  • Bootstrap 轮播全屏

    我试图让引导程序轮播中的图像显示全屏 但一直无法弄清楚 我已经为此工作了一段时间 但完全陷入困境 现在我只有一张图片 但一旦它起作用我会添加更多
  • 解释C++中语句和表达式的区别

    我试图彻底理解 a 之间的区别陈述 and an 表达但即使读完这个答案我还是觉得很困惑表达与陈述看看以下内容 std cout lt lt Hello there 我可以说这是一个声明 因为它以分号但我也可以说这是一个表达式 因为我有一个
  • Hadoop HADOOP_CLASSPATH 问题

    这个问题并不是指在整个集群中分发 jar 供工作人员使用它们 它指的是在客户端计算机上指定一些附加库 更具体地说 我尝试运行以下命令来检索 SequenceFile 的内容 path to hadoop script fs text pat
  • 对于单个布局 XML 文件来说,多少个 ViewStub 太多了?

    我在 XML 文件中定义了布局 base layout xml 其中可能包含20 ViewStub除了 3 5 个其他视图 例如ImageView and a LinearLayout含3 5个ImageButton views 我应该关心
  • 跨多列排列的唯一约束

    给定 Postgres 数据库中的以下三列 第一 第二 第三 如何创建一个约束以使排列是唯一的 E g If foo bar shiz 存在于数据库中 bar shiz foo 将被排除为非唯一 您可以使用 hstore 创建唯一索引 CR
  • 如何让 Jenkins 从代码覆盖率中排除整个文件夹?

    我试图弄清楚如何从 jacoco 由 Jenkins 启动 生成的代码覆盖率报告中排除文件夹列表 似乎可以排除类 但不能排除文件夹 这对我来说很烦人 因为我已经开始使用一个相当大的库用于在线支付系统 运行这些单元测试意味着不断在该平台上创建
  • lua中分割字符串并存储在数组中

    我需要分割一个字符串并将其存储在一个数组中 这里我使用了 string gmatch 方法 它精确地分割字符 但我的问题是如何存储在数组中 这是我的脚本 我的示例字符串格式 touchedSpriteName Sprite 10 rose
  • 找出真实的文件类型

    我正在开发一个处理文件上传的 ASP 网页 仅允许上传某些类型的文件 例如 XLS XML CSV TXT PDF PPT 等 我必须确定文件是否确实具有与扩展名显示的类型相同的类型 换句话说 如果一个木马程序被重命名为无害 pdf并上传后
  • 将参数传递给 threading.Thread

    我在 Windows 上使用 Python 3 我在用threading Thread动态运行一个函数 我可以带或不带参数调用它 我正在设置一个事物列表 其中第一项是定义路径的字符串 其他参数将在列表中稍后列出 所以 args 可能等于 C