gpt4 book ai didi

Python:实例类突变

转载 作者:太空宇宙 更新时间:2023-11-03 14:17:27 25 4
gpt4 key购买 nike

我有两个类:

class Egg:
def __init__(self):
self._color = 'White'

class Larvae(Egg):
def __init__(self):
super().__init__()
self._color = 'Transparente'

为了说明...

Ant cycle illustration

因此,在我的代码中我有一个 Egg 实例。到时候我想把它们变成幼虫实例。我可以创建一个 Larvae 实例并手动复制有关“先​​前”Egg 实例的信息。 Python 为类似的东西提供了什么?为了在其类的子类实例中“静音”一个实例?

编辑:正如下面评论的那样,这个问题中的 OOP 不是执行所需行为的好方法。因此,在阅读答案时请记住这一点

最佳答案

使用基于状态的方法怎么样?

class Ant:
def __init__(self, state='egg'):
self.state = state

@property
def color(self):
return {
'egg': 'Transparent',
'larvae': 'White,'
}[self.state]

def hatch(self):
if self.state == 'egg':
self.state = 'larvae'
else:
raise Exception('Cannot hatch if not an egg!')

关于Python:实例类突变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31997721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com