在每个类中都包含一个对象是更好还是只在需要时才包含?

2024-05-14 00:15:01 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有“披萨”课:

方案1:

class Pizza:
    def __init__(self, tools):
        self.tools = tools
        self.slices = []

    def cut(self, slices: int):
        self.slices = self.tools.pizza_cutter(slices=slices)

    def eat(self, slices: int):
        if len(self.slices) => slices:
            diff = len(self.slices) - slices
            self.slices[:diff]
        else:
            print('Not enough slices to eat!')

方案2:

class Pizza:
    def __init__(self):
        self.slices = []

    def cut(self, slices: int, tools):
        self.slices = tools.pizza_cutter(slices=slices)

    def eat(self, slices: int):
        if len(self.slices) => slices:
            diff = len(self.slices) - slices
            self.slices[:diff]
        else:
            print('Not enough slices to eat!')

如您所见,它要么在__init__中加载tools,要么只在实际使用它的方法中接收tools实例。你知道吗

我想知道,最好的方法是什么?假设每个循环都有多个创建的Pizza实例,在这个循环的末尾,所有的Pizza


Tags: selfleninitdef方案difftoolsclass
1条回答
网友
1楼 · 发布于 2024-05-14 00:15:01

一般来说,我会决定是否包括在一个类的东西,我会如何描述它。你知道吗

  • 你们班的第一个比萨饼实例包含了比萨饼的所有部分以及切割比萨饼的工具。你知道吗
  • 二等比萨饼包含比萨饼的所有部分。你知道吗

当“和”这个词开始起作用时,我知道我在一门课上投入太多,需要把它分开。在这种情况下,工具不是比萨饼固有的一部分。你不需要工具就可以吃比萨饼。如果没有工具,比萨饼可能很难切,但这并不意味着它就没有比萨饼的味道。你知道吗

考虑到这一点,我建议不要把工具放在你的比萨饼里

相关问题 更多 >