アプリケーション: 財務アナリストが、Python コードのスニペットをすばやく作成し、便利な財務関数と共有変数を、インポートや関数の定義などを行うことなく使用できると想像してください。彼らが書きたいコードのフラットソースファイルだけで、他には何もありません。
ソースファイルをモジュールとして動的にロードし(簡単)、ロードされたモジュールに関数と変数を属性として追加する(さらに簡単)ことで、ほとんどそこにたどり着くことができます。問題は、モジュールをロードするとモジュールが実行されることですが、これは早すぎます。未定義関数など
Python 3.x と PEP 402 では、Module Specs とcreate_module
andexec_module
関数が導入されています。モジュールを作成し、属性を追加して実行します。完全。例外create_module
は返すことができNone
ます。そして 3.5 importlib.abc
、.util
、および.machinery
コードを参照すると、 create_module
returnのすべての実装が表示されNone
ます。
そのため、代わりに独自のローダー、および/またはインポーター、および/または何か他のものを作成する必要があるかどうか疑問に思っています。ところで、モジュールに追加するよりもモジュールに追加する方が好きですbuiltins
が、builtins
機能し、それが私の唯一のオプションである場合は、それを行います。
ありがとう!