[英]Python what approach is the best - "list of Task objects" or "class Tasks with variable list of elements"
我想实现一个任务列表,但我不知道这两种方法中哪种方法最好:
第一的:
class Tasks(object):
def __init__(self) -> None:
self.tasks = []
def add(self, process, instance) -> None:
self.tasks.append((process, instance, Result()))
# example usage:
tasks = Tasks()
tasks.add('process-1', 'instance-1')
或者可能:
class Task(object):
def __init__(self, process, instance) -> None:
self.process = process
self.instance = instance
self.result = Result()
# example usage:
tasks = []
task = Task('process-1', 'instance-1')
tasks.append(task)
目标是在执行并行任务时将进程及其结果保留在某个地方(多处理库)。 也许某种方式更pythonic? 或者更多 OOP。
固执己见,可能更适合软件工程 SE ,但各有优缺点。
第一个应该更容易使用并且更“OOP”时尚,但我不喜欢它有多种原因:它限制你的容器到那个特定的任务列表,它更难扩展,你失去了很多内置的列表操作使用该结构时(如果您不继承自collections.abc.MutableSequence
)。
第二个更类似于贫血 object model。有些人认为这是一种反模式,但我发现这种方法有很多优点:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.