我已经用Python编程了一段时间,并且已经介绍了Python风格的一些知识,但是仍然存在如何正确使用类的问题.在阅读面向对象的讲座时,我经常会发现像单一责任原则这样的规则
"单一责任原则说一个班级应该有一个,而且只有一个,有理由改变"
读到这篇文章,我可能会想到将一个类分成两个,比如:
class ComplicatedOperations(object):
def __init__(self, item):
pass
def do(self):
...
## lots of other functions
class CreateOption(object):
def __init__(self, simple_list):
self.simple_list = simple_list
def to_options(self):
operated_data = self.transform_data(self.simple_list)
return self.default_option() + operated_data
def default_option(self):
return [('', '')]
def transform_data(self, simple_list):
return [self.make_complicated_operations_that_requires_losts_of_manipulation(item)
for item in simple_list]
def make_complicated_operations_that_requires_losts_of_manipulation(self, item):
return ComplicatedOperations(item).do()
Run Code Online (Sandbox Code Playgroud)
对我来说,这提出了许多不同的问题; 喜欢:
ComplicatedOperations类是类或只是一堆的功能是什么?__init__方法应该用于计算最终结果.这是否会使该类难以测试.回答后编辑:
所以,阅读奥古斯托理论,我最终会得到这样的结论:
class ComplicatedOperations(object):
def __init__(self):
pass
def do(self, item):
...
## lots of other functions
def …Run Code Online (Sandbox Code Playgroud)