すべてのクラスをPythonモジュールから無名オブジェクトのリストに初期化する方法はありますか?モジュール内のすべてのクラスをリスト内の名前のないオブジェクトに初期化する
例 モジュールrules
には、クラスRuleのすべての子クラスが含まれています。そのため、私は彼らがすべてのメソッドrun()
を実装します確信していると私は動的にそれらのクラスから開始されたオブジェクトのリストを持っていると思い__init__
の通話中に生成される属性name
を持つことになります。動的に初期化すると、明示的に名前を付ける必要はありません。
質問は以下のとおりです。
それは、モジュール内のすべてのクラスを反復処理することは可能ですか?
名前のないオブジェクトは開始できますか?
私の答えよりも優れています。 'inspect.isclass()'を使って 'TypeError'を避けることができます。 –
@AntonisChristofides本当に、 'inspect.isclass()'をフィルタとして使うことができます。しかし、私は生産コードの 'inspect'モジュールから何も使用しないようにしています。 –
'isinstance(value、type)'を使ってクラスがあることを確認することもできます。 (古いスタイルのクラスをサポートする必要がある場合は 'types.ClassType'もチェックする必要がありますが、代わりにそれらを避けるだけです) – Blckknght