以下是一个示例解决方案,用于实现包含可选指示器和必选指示器的松树。
class PineTree:
def __init__(self, height, has_cones=False):
self.height = height
self.has_cones = has_cones
def grow(self):
self.height += 1
def drop_cones(self):
if self.has_cones:
print("Cones are dropping from the tree.")
self.has_cones = False
else:
print("The tree does not have any cones.")
def __str__(self):
return f"A {self.height} meters tall pine tree"
# 创建一个没有松果的松树对象
tree1 = PineTree(5)
print(tree1) # 输出:A 5 meters tall pine tree
# 创建一个有松果的松树对象
tree2 = PineTree(3, has_cones=True)
print(tree2) # 输出:A 3 meters tall pine tree
# 对两棵树进行生长操作
tree1.grow()
tree2.grow()
print(tree1) # 输出:A 6 meters tall pine tree
print(tree2) # 输出:A 4 meters tall pine tree
# 从有松果的树上摘掉松果
tree2.drop_cones() # 输出:Cones are dropping from the tree.
tree2.drop_cones() # 输出:The tree does not have any cones.
在上面的示例中,我们定义了一个名为PineTree
的类,它具有height
和has_cones
两个属性。height
表示树的高度,has_cones
表示树上是否有松果。grow
方法用于使树生长,drop_cones
方法用于从树上摘掉松果。__str__
方法用于返回树的描述字符串。
通过创建PineTree
对象,我们可以设置树的高度和是否有松果。然后,我们可以对树进行生长操作,并根据需要摘掉松果。