C# で IronPython を使用していますが、コンソールとアプリケーションで異なる結果が得られます。
このコードは、IronPython コンソールで正常に実行されます。
str=[]
a = 1
b = 0
c = 1
if a==1:
str.append('One')
if b==1:
str.append('Two')
if c==1:
str.append('Three')
out=','.join(str)
print out
しかし、同じコードがアプリケーションでエラーを返します。
unexpected token 'if'
Pythonコードを含む文字列がXML(XML> C#> Python)を介して渡されるため、問題は改行にあると思われます。
<Set key="PythonCode" value="ipy:str=[]
a = 1
b = 0
c = 1
if a==1:
str.append('One')
if b==1:
str.append('Two')
if c==1:
str.append('Three')
out=','.join(str)"/>
他のコマンドは期待される結果を返します。私の問題は、インデントされたコマンド (条件、ループ) にあります。
私は C# コードにアクセスできないので、ワンライナーを記述する方法、またはインデントや改行に依存しないその他の方法を探しています。私はこれを試しました:
<Set key="PythonCode" value="ipy:str=[];
a = 1;
b = 0;
c = 1;
if a==1: str.append('One');
if b==1: str.append('Two');
if c==1: str.append('Three');
out=','.join(str);"/>
しかし、各条件の後に空白行があるはずなので、同じエラーが再び発生します。
何か案は?