2

これは、booggie2でのPythonスクリプトの使用に固有の問題です。

複数の文字列をシーケンスに返し、変数に格納したいと思います。

スクリプトは次のようになります。

def getConfiguration(config_id):
    """ Signature:  getConfiguration(int): string, string"""

    return "string_1", "string_2"

シーケンスで私はこれを持ちたいです:

(param_1, param_2) = getConfiguration(1)

注意:booggie-projectはもう存在しませんが、同じ機能をカバーするSoleyStudioの開発につながりました。

4

4 に答える 4

6

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"])
于 2012-10-31T08:23:27.450 に答える
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
于 2012-10-31T07:58:53.140 に答える
2

それでも、複数の値を返すことはできませんが、Pythonリストはシーケンスで機能するC#配列に変換されるようになりました。

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") 
于 2012-10-31T11:23:51.147 に答える
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") 
于 2013-01-18T16:46:51.497 に答える