我正在尝试为Discord Webhook创建我的第一个Python脚本,简而言之,一个C#脚本将参数传递给Python脚本(参数的长度是可变的),并且需要将所有参数连接到一个变量中
import sys
from discord_webhook import DiscordWebhook, DiscordEmbed
argv_len = len(sys.argv)
for x in range(2, argv_len):
message += sys.argv[x]
我得到的错误是:NameError:未定义名称'message'
我希望所有参数都保存在一个名为“ message”的变量中
答案 0 :(得分:1)
在引用message
之前,必须对其进行初始化。就是说,由于+=
运算符的工作方式,python不知道您在说什么。 +=
运算符expects itself to be concatonating two already existing lists.但是,没有先定义空列表,只有一个列表。
一旦实现,您的代码应如下所示:
import sys
from discord_webhook import DiscordWebhook, DiscordEmbed
argv_len = len(sys.argv)
message = []
for x in range(2, argv_len):
message += sys.argv[x]
另外,更简单的方法是slicing。这将切断前两个参数,并将其余参数保留在数组中。 (感谢@furas提及此)。可能如下:
import sys
from discord_webhook import DiscordWebhook, DiscordEmbed
message = sys.argv[2:]
这使元素从前两个开始一直到列表的末尾。 (它始于 索引2,包括两端,然后到达列表的末尾)
答案 1 :(得分:0)
您只需要在for循环外声明变量,即可在使用for循环后在循环外访问它,因为变量仅具有词法作用域。
argv_len = len(sys.argv)
message = ''
for x in range(2, argv_len):
message += sys.argv[x]
print(message)
答案 2 :(得分:0)
在开始for循环之前,您需要声明变量消息。