В конкретном случае В этом случае было предложено, чтобы фабричный метод мог стать методом класса в качестве альтернативного конструктора:
Код: Выделить всё
class FooConfig:
...
class Foo:
def __init__(self, x: int):
self.x = x
def create_foo(c: FooConfig):
f = Foo(c.x)
return f
Код: Выделить всё
class FooConfig:
...
class Foo:
def __init__(self, x: int):
self.x = x
@classmethod
def from_config(cls, c: FooConfig):
return cls(c.x)
Подробнее здесь: https://stackoverflow.com/questions/787 ... d-practice