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
の詳細は、スタートアップスクリプトを参照してください。