hscriptExpression(expression_string)
→ float
, str
, or tuple
エクスプレッション文字列を指定すると、この関数は、その文字列をパラメータのHScriptエクスプレッションと見なして評価します。 戻りタイプは、そのエクスプレッションに依存します。
エクスプレッションが無効だったり、評価中にエラーが起きるとhou.OperationFailedを引き起こします。
>>> hou.hscriptExpression("$HIP") '/path/to/hip/directory' >>> hou.hscriptExpression("$F") 1.0 >>> hou.hscriptExpression('vector("[1, 2, 3]")') (1.0, 2.0, 3.0) >>> hou.hscriptExpression('matrix("[[1, 2][3, 4]]")') ((1.0, 2.0), (3.0, 4.0)) >>> hou.hscriptExpression("hello") 'hello' >>> hou.hscriptExpression("'hello'") 'hello' >>> hou.hscriptExpression("'hello' + ' world'") 'hello world' >>> hou.hscriptExpression('"$F"') '1' >>> hou.hscriptExpression("'$F'") '$F'
この関数は、若干hou.expandString()に似ていますが、 expandStringは文字列の変数の部分を置換し、残りの文字列はそのままにします。 その変数が不明であれば、何も展開されません。
>>> hou.expandString("$HOME") '/home/me' >>> hou.expandString("HOME is $HOME") 'HOME is /home/me' >>> hou.hscriptExpression("HOME is $HOME") Traceback (most recent call last): File "<console>", line 1, in <module> File "/opt/hfs10.5/houdini/python2.5libs/hou.py", line 19331, in hscriptExpression return _hou.hscriptExpression(*args) OperationFailed: The attempted operation failed. Syntax error - extra tokens detected in expression >>> hou.expandString("$F") '1' >>> hou.expandString('"$F"') '"1"' >>> hou.hscriptExpression("$GARBAGE") Traceback (most recent call last): File "<console>", line 1, in <module> File "/opt/hfs10.5/houdini/python2.5libs/hou.py", line 19331, in hscriptExpression return _hou.hscriptExpression(*args) OperationFailed: The attempted operation failed. Undefined variable >>> hou.expandString("$GARBAGE") '$GARBAGE' >>> hou.hscript("echo -n $GARBAGE")[0] '' >>> hou.expandString("") '' >>> hou.hscriptExpression("") Traceback (most recent call last): File "<console>", line 1, in <module> File "/opt/hfs10.5/houdini/python2.5libs/hou.py", line 19331, in hscriptExpression return _hou.hscriptExpression(*args) OperationFailed: The attempted operation failed. Invalid expression
See also |