如何将多个字符串从脚本返回到booggie 2中的规则序列?

时间:2012-10-31 07:58:04

标签: python booggie

这是特定于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的开发,​​它涵盖了相同的功能。

4 个答案:

答案 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")