【发布时间】:2022-09-25 07:56:54
【问题描述】:
我有这个简单的python代码:
x = 10
def myfunc():
global x
x=15
myfunc()
output = [{\'id\': x, \'hello\': \"\"}]
输出是 10 而不是 15。关于在 Zapier 使用 python 代码步骤时如何更改函数内部的全局变量的任何想法
标签: zapier
我有这个简单的python代码:
x = 10
def myfunc():
global x
x=15
myfunc()
output = [{\'id\': x, \'hello\': \"\"}]
输出是 10 而不是 15。关于在 Zapier 使用 python 代码步骤时如何更改函数内部的全局变量的任何想法
标签: zapier
不,你不能那样做。
这个问题也花了我很多时间来调试我在本地运行良好但在 Zapier 中失败的代码。我猜 Zapier 实际上以某种方式包装了我们的代码——也许将我们的代码放在一个大函数中,然后 Zapier 调用这个函数来运行我们的代码。所以这些全局变量在这个环境中不再是真正的全局变量。
我尝试了几种方法,但都没有奏效。 我得出的结论是“我们不能修改 Zapier 代码中的全局变量。我们只能读取一个“全局”变量——它并不是真正的全局变量 在扎皮尔的环境中”.
【讨论】:
我发现解决此问题的最佳方法是使用 Webhook Step 将信息传递给 Google Cloud Functions(或 AWS/Azure 等价物)。这将让你运行任何你喜欢的东西 + 导入 Zapier 不允许你使用的 Python 库。
Cloud Functions 非常简单,作为一个营销人员,除了 Zapier 代码步骤之外没有任何编码背景,我能够理解它。
这样你就可以将结果传回给 Zapier。我还发现它使调试更容易,因为当您反复重新测试某些东西时,Zapier 界面可能会有点麻烦。
【讨论】: