假设我有一个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)
@classmethod
,请参见初学者的@classmethod和@staticmethod的含义?