Pythonファクトリー関数のベストプラクティス
foo.pyクラスを含むファイルがあるとしますFoo: class Foo(object): def __init__(self, data): ... ここFooで、生のソースデータから特定の方法でオブジェクトを作成する関数を追加します。Fooの静的メソッドまたは別の別の関数として配置する必要がありますか? class Foo(object): def __init__(self, data): ... # option 1: @staticmethod def fromSourceData(sourceData): return Foo(processData(sourceData)) # option 2: def makeFoo(sourceData): return Foo(processData(sourceData)) ユーザーにとって便利であることがより重要かどうかはわかりません。 foo1 = foo.makeFoo(sourceData) または、メソッドとクラスの間の明確な結合を維持することがより重要かどうか: foo1 = foo.Foo.fromSourceData(sourceData)