假设我有“披萨”类:
选项 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!')
如您所见,它要么加载 tools
在__init__
, 或者它只收到 tools
实际使用它的方法中的实例。
我想知道,最好的方法是什么?考虑到 Pizza
有多个实例创建了每个循环,并在循环结束时创建了我 cut()
所有Pizza
最佳答案
通常我会根据我如何描述来决定是否将某些东西包含在一个类中。
- Pizza 类的第一个实例包含披萨的所有部分和切割它的工具。
- 第二类披萨包含披萨的所有部分。
当“和”这个词出现时,我知道我在一个类中投入了太多,需要将其分开。在这种情况下,工具不是披萨的固有部分。您可以在没有切割工具的情况下制作比萨饼。如果没有工具,披萨可能很难切开,但这并不会影响它的披萨质量。
考虑到这一点,我建议将工具放在比萨饼之外
关于python - 是在每个类中包含一个对象还是仅在需要时包含一个对象更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56871993/