expressionGlobals()
→ dict
Houdiniは、パラメータ内のPythonエクスプレッションを評価する時は、異なったネームスペースを使用します。
この方法により、Houdiniは、そのネームスペース内でfrom hou import *とfrom hou.session import *を実行することができるので、
エクスプレッションでhou.とhou.session.の接頭辞を省略することができ、グローバルネームスペースと干渉しません。
Pythonでは、ネームスペースが辞書として保存されます。
この関数は、Pythonパラメータエクスプレッションネームスペースの辞書を返します。
この関数は、現行ネームスペースの辞書を返すビルトインのglobals関数に似ています。
pythonrc.pyファイルにこの関数を使用すれば、どのPythonパラメータエクスプレッションからもコールすることができるPython関数をセットアップすることができます。
例えば、exprという名前のモジュールにあなた独自の関数を記述すれば、pythonrc.py内で以下のコードを記述することができます:
import expr hou.expressionGlobals()['expr'] = expr
そして、Pythonエクスプレッションにexpr.foo()を記述することができます。
このfooはexprモジュールに定義された関数です。
Pythonのexecステートメントを使って、この辞書を使用することもできます。
以下のサンプルでは、exprモジュールをグローバルネームスペースとエクスプレッションネームスペースの両方にインポートしています:
code = compile("import expr", "<generated_code>", "exec") exec code exec code in hou.expressionGlobals()
パラメータにPythonエクスプレッションを使用する方法の詳細は、Pythonパラメータエクスプレッションを参照してください。
pythonrc.pyの詳細は、スタートアップスクリプトを参照してください。