gpt4 book ai didi

python - 变量传递给同一函数的多个线程

转载 作者:行者123 更新时间:2023-12-01 07:09:10 29 4
gpt4 key购买 nike

我目前正在开发一个使用 dhooks 将 webhook 发送到多个 Discord 的系统。

这是用于调用发送 webhooks 的函数的函数。 webhooks 的长度为 2,它是一个列表列表。

for hook in webhooks:
thread.start_new_thread(send_hook,(hook, embed, tag))

这是send_hook函数:

def send_hook(hook, embed, tag):

embed.set_footer(text="{} x Will".format(hook[0])) <-- This is the part where the error happens

webhook = Webhook(hook[1])
webhook.send(embed=embed)

我遇到的错误是,当我在 send_hook 的第 2 行设置页脚时,插入嵌入变量的变量有时会发送到错误的 webhooks - 几乎就像它被覆盖一样。

举个例子:

这是我的 webhook 列表:[["Webhook 1 text", "discordwebhook1"], ["Webhook 2 text", "discordwebhook1"]]

将会发生的情况是,在 discordwebhook1 channel 中,页脚将显示“Webhook 1 text”,但在 discordwebhoo2 channel 中,页脚将显示“Webhook 1”文本”也是如此。

我尝试在 send_hook 函数中创建嵌入的新变量 - 但这也不起作用(代码如下)。

def send_hook(hook, embed, tag):
new_embed = embed
new_embed.set_footer(text="{} x Will".format(hook[0])) <-- This is the part where the error happens

webhook = Webhook(hook[1])
webhook.send(embed=new_embed)

感谢所有帮助!

谢谢

最佳答案

如何“嵌入”?请注意,“嵌入”和“标记”始终传递给每个新创建的线程,如果需要,您需要对每个线程进行深度复制

from copy import deepcopy

for hook in webhooks:
thread.start_new_thread(send_hook,(hook, deepcopy(embed), tag))

关于python - 变量传递给同一函数的多个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58309718/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com