モジュール内の関数を動的に定義してから、モジュールと__all__
関数の__name__
属性を更新して、モジュール内の名前と一致させます。__module__
関数の属性を更新して、関数が存在するモジュールを指すようにするのは良い考えかどうか疑問に思っていました。ドキュメントは次のように述べ__module__
ています。
関数が定義されたモジュールの名前、または利用できない場合は None。
関数を作成するコードは、関数が存在するモジュールとはほとんど関係のない別のモジュールに存在します。このモジュールには関数への参照はありません。
私はメーリングリストをいじり回しましたが、のセマンティクスが何であるか、__module__
およびそれを None に設定する必要があるか、関数が存在するモジュールまたはコードが存在するモジュールを作成する必要があるかについて少し混乱しています関数。今のところはそのままにしておきますが、誰かが答えを知っているかどうかに興味があります.