假设我有“比萨”类:
选项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
s
答案 0 :(得分:3)
通常,我将通过描述方式来确定是否在课程中包括某些内容。
当“ and”一词出现时,我知道我在一堂课中投入过多,需要将其分开。在这种情况下,工具不是比萨饼的固有部分。您可以在没有工具的情况下切比萨饼。没有工具,比萨饼可能很难切开,但这并不能像比萨饼一样。
考虑到这一点,我建议您不要将工具放在您的比萨饼中