这是特定于booggie 2中使用python脚本的问题。
我想将多个字符串返回到序列并将它们存储在变量中。
脚本应如下所示:
def getConfiguration(config_id):
""" Signature: getConfiguration(int): string, string"""
return "string_1", "string_2"
在序列中我想要这个:
(param_1, param_2) = getConfiguration(1)
请注意:booggie项目不再存在,但导致了Soley Studio的开发,它涵盖了相同的功能。
答案 0 :(得分:7)
booggie 2中的脚本仅限于一个返回值。 但是你可以返回一个包含字符串的数组。 可悲的是,Python数组与GrGen数组不同,所以我们需要先将它们转换。
所以你的例子看起来像这样:
def getConfiguration(config_id):
""" Signature: getConfiguration(int): array<string>"""
#TypeHelper in booggie 2 contains conversion methods from Python to GrGen types
return TypeHelper.ToSeqArray(["string_1", "string_2"])
答案 1 :(得分:3)
返回一个元组
return ("string_1", "string_2")
参见此示例
In [124]: def f():
.....: return (1,2)
.....:
In [125]: a, b = f()
In [126]: a
Out[126]: 1
In [127]: b
Out[127]: 2
答案 2 :(得分:2)
但是,仍然无法返回多个值,但现在将python列表转换为序列中的C#-array。
python脚本本身应该如下所示
def getConfiguration(config_id):
""" Signature: getConfiguration(int): array<string>"""
return ["feature_1", "feature_2"]
在序列中,您可以将此列表用作数组:
config_list:array<string> # initialize array of string
(config_list) = getConfigurationList(1) # assign script output to that array
{first_item = config_list[0]} # get the first string("feature_1")
{second_item = config_list[1]} # get the second string("feature_2")
答案 3 :(得分:1)
对于上面的示例,我建议使用以下代码访问数组中的条目(在序列中):
config_list:array<string> # initialize array of string
(config_list) = getConfigurationList(1) # assign script output to that array
{first_item = config_list[0]} # get the first string("feature_1")
{second_item = config_list[1]} # get the second string("feature_2")